{"id":51132,"name":"actioncable","ecosystem":"rubygems","repository_url":"https://github.com/rails/rails","issues_count":75,"created_at":"2025-07-13T21:24:18.652Z","updated_at":"2025-07-13T21:24:18.652Z","purl":"pkg:gem/actioncable","metadata":{"id":148776,"name":"actioncable","ecosystem":"rubygems","description":"Structure many real-time application concerns into channels over a single WebSocket connection.","homepage":"https://rubyonrails.org","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/rails/rails","keywords_array":[],"namespace":null,"versions_count":209,"first_release_published_at":"2015-04-21T15:08:19.941Z","latest_release_published_at":"2025-03-12T03:08:54.416Z","latest_release_number":"8.0.2","last_synced_at":"2025-07-19T02:10:09.144Z","created_at":"2022-04-05T16:20:49.077Z","updated_at":"2025-07-19T02:10:09.144Z","registry_url":"https://rubygems.org/gems/actioncable","install_command":"gem install actioncable -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/actioncable/","metadata":{"funding":null},"repo_metadata":{"id":390886,"uuid":"8514","full_name":"rails/rails","owner":"rails","description":"Ruby on Rails","archived":false,"fork":false,"pushed_at":"2025-07-15T16:14:23.000Z","size":266336,"stargazers_count":57112,"open_issues_count":1345,"forks_count":21871,"subscribers_count":2310,"default_branch":"main","last_synced_at":"2025-07-16T05:51:53.561Z","etag":null,"topics":["activejob","activerecord","framework","html","mvc","rails","ruby"],"latest_commit_sha":null,"homepage":"https://rubyonrails.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"MIT-LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2008-04-11T02:19:47.000Z","updated_at":"2025-07-16T05:04:18.000Z","dependencies_parsed_at":"2024-02-04T10:23:48.595Z","dependency_job_id":"76bea4fd-bd22-40af-b9bb-10ebcdcbd69d","html_url":"https://github.com/rails/rails","commit_stats":{"total_commits":70043,"total_committers":6052,"mean_commits":"11.573529411764707","dds":0.9368816298559456,"last_synced_commit":"be9aa73dd72f1097be5d45a58d7912447a266bd1"},"previous_names":[],"tags_count":572,"template":false,"template_full_name":null,"purl":"pkg:github/rails/rails","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/rails/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265687988,"owners_count":23811349,"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":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"tags":[{"name":"v8.0.2","sha":"3235827585d87661942c91bc81f64f56d710f0b2","kind":"tag","published_at":"2025-03-12T02:54:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.2","html_url":"https://github.com/rails/rails/releases/tag/v8.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.2/manifests"},{"name":"v8.0.1","sha":"cf6ff17e9a3c6c1139040b519a341f55f0be16cf","kind":"tag","published_at":"2024-12-13T19:54:18.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.1","html_url":"https://github.com/rails/rails/releases/tag/v8.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.1/manifests"},{"name":"v8.0.0.1","sha":"a993c27a50395e727872600b5669976ff0a272e7","kind":"tag","published_at":"2024-12-10T21:45:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.1","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.1/manifests"},{"name":"v7.2.2.1","sha":"33beb0a38db1c058123a8e3cc298cad918adfe32","kind":"tag","published_at":"2024-12-10T21:40:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.2.1","html_url":"https://github.com/rails/rails/releases/tag/v7.2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.2.1/manifests"},{"name":"v7.1.5.1","sha":"14c115b120ed089331ff3dc13f36bd9129ced33d","kind":"tag","published_at":"2024-12-10T21:25:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.5.1","html_url":"https://github.com/rails/rails/releases/tag/v7.1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.5.1/manifests"},{"name":"v7.0.8.7","sha":"778eab826538be6da355d848aecaea2245e3b8ce","kind":"tag","published_at":"2024-12-10T21:16:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8.7","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.7/manifests"},{"name":"v8.0.0","sha":"dd8f7185faeca6ee968a6e9367f6d8601a83b8db","kind":"tag","published_at":"2024-11-07T22:24:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0/manifests"},{"name":"v7.2.2","sha":"d0dcb8fa6073a0c4d42600c15e82e3bb386b27d3","kind":"tag","published_at":"2024-10-31T01:43:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.2","html_url":"https://github.com/rails/rails/releases/tag/v7.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.2/manifests"},{"name":"v7.1.5","sha":"8984f4c4982f5c94bd6fb8ada42d7418bc403076","kind":"tag","published_at":"2024-10-31T01:14:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.5","html_url":"https://github.com/rails/rails/releases/tag/v7.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.5/manifests"},{"name":"v8.0.0.rc2","sha":"6283314df19ded7074f1fe37a8b0dbbad141e386","kind":"tag","published_at":"2024-10-30T00:30:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.rc2/manifests"},{"name":"v7.2.1.2","sha":"7750d64a65e5b2641d87ef45e6e65ace193d9a27","kind":"tag","published_at":"2024-10-23T22:32:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.1.2","html_url":"https://github.com/rails/rails/releases/tag/v7.2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.1.2/manifests"},{"name":"v7.1.4.2","sha":"e52d670dba4861a081576e5ccc5db7015af3003c","kind":"tag","published_at":"2024-10-23T22:27:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.4.2","html_url":"https://github.com/rails/rails/releases/tag/v7.1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.4.2/manifests"},{"name":"v7.0.8.6","sha":"bc979c5cf4e29e2aba95b7b13ca53e7a02fddee2","kind":"tag","published_at":"2024-10-23T22:21:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8.6","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.6/manifests"},{"name":"v6.1.7.10","sha":"86864c2f6661d3aa93b07f833b2900d241568cb7","kind":"tag","published_at":"2024-10-23T21:56:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.10","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.10/manifests"},{"name":"v8.0.0.rc1","sha":"35b3c7f12b3f13f80cacf7abde2fc5a9c0abea7b","kind":"tag","published_at":"2024-10-19T01:38:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.rc1/manifests"},{"name":"v6.1.7.9","sha":"b2fbbfbcaa3d662c68a9ee21ab6cf95eccc2b4ec","kind":"tag","published_at":"2024-10-15T21:23:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.9","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.9/manifests"},{"name":"v7.2.1.1","sha":"a1f6a13f691e0929d40b7e1b1e0d31aa69778128","kind":"tag","published_at":"2024-10-15T20:44:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.1.1","html_url":"https://github.com/rails/rails/releases/tag/v7.2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.1.1/manifests"},{"name":"v7.1.4.1","sha":"5b5f0da552f62e85e31e2d747d52aed2a3133f48","kind":"tag","published_at":"2024-10-15T20:36:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.4.1","html_url":"https://github.com/rails/rails/releases/tag/v7.1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.4.1/manifests"},{"name":"v7.0.8.5","sha":"f61f4ef957f80e1668797fce8a2393f3edb7ed76","kind":"tag","published_at":"2024-10-15T20:19:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8.5","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.5/manifests"},{"name":"v8.0.0.beta1","sha":"72bc36fb47aa3a9b10149ecefc1f344d7b028d79","kind":"tag","published_at":"2024-09-26T15:04:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.beta1/manifests"},{"name":"v8.0.0.alpha9","sha":"0fe9dc6c2bb0bdbc23d3874f112e15cacabe72f3","kind":"tag","published_at":"2024-09-25T18:14:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha9","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha9/manifests"},{"name":"v8.0.0.alpha8","sha":"7c9855125e8bdf5c82bdde581b1dfaf636aba5b7","kind":"tag","published_at":"2024-09-18T21:08:33.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha8","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha8/manifests"},{"name":"v8.0.0.alpha7","sha":"34e9d47d8e53786efe4b64e4513aa78eaea757b0","kind":"tag","published_at":"2024-09-18T05:04:18.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha7","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha7/manifests"},{"name":"v8.0.0.alpha6","sha":"668c51e8761d38d798a0a4973549042ee41995c5","kind":"tag","published_at":"2024-09-18T05:01:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha6","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha6/manifests"},{"name":"v8.0.0.alpha5","sha":"6b21e48541331054120ec617cf455c0d13a51539","kind":"tag","published_at":"2024-09-18T04:57:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha5","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha5/manifests"},{"name":"v8.0.0.alpha4","sha":"aa5479e8188c303c3acbb30b1d490c4e473e7ce4","kind":"tag","published_at":"2024-09-18T03:37:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha4","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha4/manifests"},{"name":"v8.0.0.alpha3","sha":"e14521de210a9b5ab8fbdd431110128b78fb1e12","kind":"tag","published_at":"2024-09-17T04:34:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha3","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha3/manifests"},{"name":"v8.0.0.alpha2","sha":"f270115dd1c441aa672cb7054598551de80c1ec7","kind":"tag","published_at":"2024-09-17T04:30:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha2","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha2/manifests"},{"name":"v8.0.0.alpha1","sha":"2c68c89238628373473eb8cb2bf6f853a9cda2b1","kind":"tag","published_at":"2024-09-17T04:23:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v8.0.0.alpha1","html_url":"https://github.com/rails/rails/releases/tag/v8.0.0.alpha1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v8.0.0.alpha1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v8.0.0.alpha1/manifests"},{"name":"v7.1.4","sha":"6f57590388ca38ed2b83bc1207a8be13a9ba2aef","kind":"tag","published_at":"2024-08-22T21:26:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.4","html_url":"https://github.com/rails/rails/releases/tag/v7.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.4/manifests"},{"name":"v7.2.1","sha":"a11f0a63673d274c59c69c2688c63ba303b86193","kind":"tag","published_at":"2024-08-22T19:44:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.1","html_url":"https://github.com/rails/rails/releases/tag/v7.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.1/manifests"},{"name":"v7.2.0","sha":"fb6c4305939da06efdf2893d99130e7829c53e8b","kind":"tag","published_at":"2024-08-09T23:25:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.0","html_url":"https://github.com/rails/rails/releases/tag/v7.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0/manifests"},{"name":"v7.2.0.rc1","sha":"41d50f4bb11a1b1a910b38a3beefa97cafb52a2a","kind":"tag","published_at":"2024-08-06T17:00:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v7.2.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.rc1/manifests"},{"name":"v0.8.0","sha":"7050bba8984dca2ae8c52b1d4cc616149f5c9d91","kind":"tag","published_at":"2024-08-01T16:10:39.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.8.0","html_url":"https://github.com/rails/rails/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.8.0/manifests"},{"name":"v0.8.5","sha":"fbf913fafea1072cb15c0a635b276dab5dfefe63","kind":"tag","published_at":"2024-08-01T16:10:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.8.5","html_url":"https://github.com/rails/rails/releases/tag/v0.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.8.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.8.5/manifests"},{"name":"v0.7.0","sha":"3cd56dccf840c97059e242ab616c13a84393a24c","kind":"tag","published_at":"2024-08-01T16:09:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.7.0","html_url":"https://github.com/rails/rails/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.7.0/manifests"},{"name":"v0.6.5","sha":"11665ed67989e2ebb4ef38fa0781514a649b7ef2","kind":"tag","published_at":"2024-08-01T16:09:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.6.5","html_url":"https://github.com/rails/rails/releases/tag/v0.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.6.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.6.5/manifests"},{"name":"v0.6.0","sha":"be81c4351b3e3af81c001d157541c4bf58a2f94b","kind":"tag","published_at":"2024-08-01T16:08:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.6.0","html_url":"https://github.com/rails/rails/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.6.0/manifests"},{"name":"v0.5.7","sha":"7b7799aec70f1b31db9fcc389b26ae61ef44d9bc","kind":"tag","published_at":"2024-08-01T16:08:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.5.7","html_url":"https://github.com/rails/rails/releases/tag/v0.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.5.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.7/manifests"},{"name":"v0.5.6","sha":"ec06ea363252e2251a93f7db756f2e9421ae2c78","kind":"tag","published_at":"2024-08-01T16:08:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.5.6","html_url":"https://github.com/rails/rails/releases/tag/v0.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.5.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.6/manifests"},{"name":"v0.5.5","sha":"42042de1e2b8e7023b807ec105d9b479f9f457f1","kind":"tag","published_at":"2024-08-01T16:07:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.5.5","html_url":"https://github.com/rails/rails/releases/tag/v0.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.5.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.5/manifests"},{"name":"v0.5.0","sha":"feba2817693536f24cd3848f3cbdc28735806261","kind":"tag","published_at":"2024-08-01T16:07:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.5.0","html_url":"https://github.com/rails/rails/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.5.0/manifests"},{"name":"v7.2.0.beta3","sha":"9b63450fe40749d2481b6b6b3e0a7c711750e2a0","kind":"tag","published_at":"2024-07-11T15:19:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.0.beta3","html_url":"https://github.com/rails/rails/releases/tag/v7.2.0.beta3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.0.beta3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.beta3/manifests"},{"name":"v7.2.0.beta2","sha":"b752c38e81a310c1aaca78c7cdd1784009ea189a","kind":"tag","published_at":"2024-06-04T18:14:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.0.beta2","html_url":"https://github.com/rails/rails/releases/tag/v7.2.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.0.beta2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.beta2/manifests"},{"name":"v7.1.3.4","sha":"19eebf6d33dd15a0172e3ed2481bec57a89a2404","kind":"tag","published_at":"2024-06-04T18:00:18.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.3.4","html_url":"https://github.com/rails/rails/releases/tag/v7.1.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.4/manifests"},{"name":"v7.0.8.4","sha":"ec7f25368dff972b014fad4294c62181fb26c584","kind":"tag","published_at":"2024-06-04T17:56:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8.4","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.4/manifests"},{"name":"v6.1.7.8","sha":"e39361ab9062e23dcef5aeaf376fc48b106da66b","kind":"tag","published_at":"2024-06-04T17:55:28.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.8","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.8/manifests"},{"name":"v7.2.0.beta1","sha":"9098f535b2accef27c6c284dede119c936c44595","kind":"tag","published_at":"2024-05-29T23:37:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.2.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v7.2.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.2.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.2.0.beta1/manifests"},{"name":"v7.0.8.3","sha":"08bc3ce3e0930d3509fce12127942172917a5c03","kind":"tag","published_at":"2024-05-17T19:52:17.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8.3","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.3/manifests"},{"name":"v7.1.3.3","sha":"747a03ba7722b6f0a7ce42e86cea83cf07a2e6ef","kind":"tag","published_at":"2024-05-16T19:20:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.3.3","html_url":"https://github.com/rails/rails/releases/tag/v7.1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.3/manifests"},{"name":"v7.0.8.2","sha":"7c8d2a1d6e0a22c8e96ecae4bdea8c2b6e347168","kind":"tag","published_at":"2024-05-16T18:57:43.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8.2","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.2/manifests"},{"name":"v7.1.3.2","sha":"6f0d1ad14b92b9f5906e44740fce8b4f1c7075dc","kind":"tag","published_at":"2024-02-21T21:45:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.3.2","html_url":"https://github.com/rails/rails/releases/tag/v7.1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.2/manifests"},{"name":"v7.1.3.1","sha":"d73ed958dc91d6b8cbb0bef7b4cdcfc013bd876f","kind":"tag","published_at":"2024-02-21T18:46:05.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.3.1","html_url":"https://github.com/rails/rails/releases/tag/v7.1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3.1/manifests"},{"name":"v7.0.8.1","sha":"506462ab13755d9f024e1ddbfc8c58d73e7a1bce","kind":"tag","published_at":"2024-02-21T18:42:34.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8.1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8.1/manifests"},{"name":"v6.1.7.7","sha":"ac87f58207cff18880593263be9d83456aa3a2ef","kind":"tag","published_at":"2024-02-21T18:38:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.7","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.7/manifests"},{"name":"v7.1.3","sha":"36c1591bcb5e0ee3084759c7f42a706fe5bb7ca7","kind":"tag","published_at":"2024-01-16T22:53:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.3","html_url":"https://github.com/rails/rails/releases/tag/v7.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.3/manifests"},{"name":"v7.1.2","sha":"6b93fff8af32ef5e91f4ec3cfffb081d0553faf0","kind":"tag","published_at":"2023-11-10T21:49:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.2","html_url":"https://github.com/rails/rails/releases/tag/v7.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.2/manifests"},{"name":"v7.1.1","sha":"23938052acd773fa24068debe56cd892cbf8d868","kind":"tag","published_at":"2023-10-11T22:16:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.1","html_url":"https://github.com/rails/rails/releases/tag/v7.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.1/manifests"},{"name":"v7.1.0","sha":"d39db5d1891f7509cde2efc425c9d69bbb77e670","kind":"tag","published_at":"2023-10-05T08:05:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.0","html_url":"https://github.com/rails/rails/releases/tag/v7.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0/manifests"},{"name":"v7.1.0.rc2","sha":"8340f8ffdc6279c566b2b37c59674ecb158b4618","kind":"tag","published_at":"2023-10-01T21:58:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v7.1.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0.rc2/manifests"},{"name":"v7.1.0.rc1","sha":"b69de9967a328c0cfdc0650f044c0ebb2e87407a","kind":"tag","published_at":"2023-09-27T03:59:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v7.1.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0.rc1/manifests"},{"name":"v7.1.0.beta1","sha":"699dfdb42635faf6d40ff2405b2f0a615b1c54ed","kind":"tag","published_at":"2023-09-13T00:36:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.1.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v7.1.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.1.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.1.0.beta1/manifests"},{"name":"v7.0.8","sha":"fc734f28e65ef8829a1a939ee6702c1f349a1d5a","kind":"tag","published_at":"2023-09-09T19:10:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.8","html_url":"https://github.com/rails/rails/releases/tag/v7.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.8/manifests"},{"name":"v7.0.7.2","sha":"3668b4b5978822f1e6311c7fd7a32f58daee136a","kind":"tag","published_at":"2023-08-22T20:10:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.7.2","html_url":"https://github.com/rails/rails/releases/tag/v7.0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.7.2/manifests"},{"name":"v6.1.7.6","sha":"56bcc0abd3c9a6b09469e9428f6eea0dd77c2294","kind":"tag","published_at":"2023-08-22T20:07:39.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.6","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.6/manifests"},{"name":"v7.0.7.1","sha":"c92caefc2bdf856845a72b8608d5603b330e8c3e","kind":"tag","published_at":"2023-08-22T17:20:17.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.7.1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.7.1/manifests"},{"name":"v6.1.7.5","sha":"3a1b6150a9b7619fb6d020b61c3b8f8d493142b0","kind":"tag","published_at":"2023-08-22T17:15:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.5","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.5/manifests"},{"name":"v7.0.7","sha":"522c86f35ccc80453ed9fb6ca8b394db321f9a69","kind":"tag","published_at":"2023-08-09T23:56:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.7","html_url":"https://github.com/rails/rails/releases/tag/v7.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.7/manifests"},{"name":"v7.0.6","sha":"593893c901f87b4ed205751f72df41519b4d2da3","kind":"tag","published_at":"2023-06-29T20:53:23.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.6","html_url":"https://github.com/rails/rails/releases/tag/v7.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.6/manifests"},{"name":"v7.0.5.1","sha":"cdd14ce1f5196e4bd98df42f89a1cd36ba9d4bee","kind":"tag","published_at":"2023-06-26T21:35:35.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.5.1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.5.1/manifests"},{"name":"v6.1.7.4","sha":"7d949d7c81d2ec3c6d21525ebb08c85f3f174b74","kind":"tag","published_at":"2023-06-26T21:31:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.4","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.4/manifests"},{"name":"v7.0.5","sha":"e88857bbb9d4e1dd64555c34541301870de4a45b","kind":"tag","published_at":"2023-05-24T18:56:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.5","html_url":"https://github.com/rails/rails/releases/tag/v7.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.5/manifests"},{"name":"v7.0.4.3","sha":"c15ee6e7b5065db3c46afa1f025b8e45f443604e","kind":"tag","published_at":"2023-03-13T18:53:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.4.3","html_url":"https://github.com/rails/rails/releases/tag/v7.0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4.3/manifests"},{"name":"v6.1.7.3","sha":"f09dc7c4c2e8b9375345d443c230cb8d78ad6a18","kind":"tag","published_at":"2023-03-13T18:48:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.3","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.3/manifests"},{"name":"v6.1.7.2","sha":"f0c5e60aed8bdce96c385cad05b1e34d7d757038","kind":"tag","published_at":"2023-01-25T03:23:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.2","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.2/manifests"},{"name":"v7.0.4.2","sha":"7c70791470fc517deb7c640bead9f1b47efb5539","kind":"tag","published_at":"2023-01-25T03:13:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.4.2","html_url":"https://github.com/rails/rails/releases/tag/v7.0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4.2/manifests"},{"name":"v7.0.4.1","sha":"23e0345fe900dfd7edd6e8e5a7a6bd54b2a7d2ed","kind":"tag","published_at":"2023-01-17T18:55:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.4.1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4.1/manifests"},{"name":"v6.1.7.1","sha":"c443466a99f8ed951605fb4993a01de5e41349a4","kind":"tag","published_at":"2023-01-17T18:54:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7.1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7.1/manifests"},{"name":"v6.0.6.1","sha":"28bb76d3efc39b2ef663dfe2346f7c2621343cd6","kind":"tag","published_at":"2023-01-17T18:52:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.6.1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.6.1/manifests"},{"name":"v7.0.4","sha":"8015c2c2cf5c8718449677570f372ceb01318a32","kind":"tag","published_at":"2022-09-09T18:42:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.4","html_url":"https://github.com/rails/rails/releases/tag/v7.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.4/manifests"},{"name":"v6.1.7","sha":"9ab33753b6bab1809fc73d35b98a5c1d0c96ba1b","kind":"tag","published_at":"2022-09-09T18:38:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.7","html_url":"https://github.com/rails/rails/releases/tag/v6.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.7/manifests"},{"name":"v6.0.6","sha":"91cf62e7b43c33ae6263adf3d7563da9b68ff21d","kind":"tag","published_at":"2022-09-09T18:31:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.6","html_url":"https://github.com/rails/rails/releases/tag/v6.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.6/manifests"},{"name":"v7.0.3.1","sha":"04972d9b9ef60796dc8f0917817b5392d61fcf09","kind":"tag","published_at":"2022-07-12T17:31:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.3.1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.3.1/manifests"},{"name":"v6.1.6.1","sha":"dc1242fd5a4d91e63846ab552a07e19ebf8716ac","kind":"tag","published_at":"2022-07-12T17:29:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.6.1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.6.1/manifests"},{"name":"v6.0.5.1","sha":"eed417637b594b33b3b58b08dd41daa10c57e083","kind":"tag","published_at":"2022-07-12T17:27:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.5.1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.5.1/manifests"},{"name":"v5.2.8.1","sha":"8030cff808657faa44828de001cd3b80364597de","kind":"tag","published_at":"2022-07-12T17:26:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.8.1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.8.1/manifests"},{"name":"v5.2.8","sha":"26521331e5923a0c50fa50984d2f924e5f26c50b","kind":"tag","published_at":"2022-05-09T13:57:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.8","html_url":"https://github.com/rails/rails/releases/tag/v5.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.8/manifests"},{"name":"v6.0.5","sha":"433115554d3ea0b4dab9df99548c47707cadb20d","kind":"tag","published_at":"2022-05-09T13:49:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.5","html_url":"https://github.com/rails/rails/releases/tag/v6.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.5/manifests"},{"name":"v6.1.6","sha":"147557dc16a5bd8bab96f999f359a570232e1873","kind":"tag","published_at":"2022-05-09T13:44:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.6","html_url":"https://github.com/rails/rails/releases/tag/v6.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.6/manifests"},{"name":"v7.0.3","sha":"3872bc0e54d32e8bf3a6299b0bfe173d94b072fc","kind":"tag","published_at":"2022-05-09T13:35:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.3","html_url":"https://github.com/rails/rails/releases/tag/v7.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.3/manifests"},{"name":"v7.0.2.4","sha":"3520cc77df1b52a6c808083214b583c769e9a4b2","kind":"tag","published_at":"2022-04-26T19:32:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.2.4","html_url":"https://github.com/rails/rails/releases/tag/v7.0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.4/manifests"},{"name":"v6.1.5.1","sha":"e2efc667dea886e71c33e3837048e34b7a1fe470","kind":"tag","published_at":"2022-04-26T19:30:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.5.1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.5.1/manifests"},{"name":"v6.0.4.8","sha":"27a5ec76eed1e5d0bc5649b0e92097267c0b4338","kind":"tag","published_at":"2022-04-26T19:26:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.8","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.8/manifests"},{"name":"v5.2.7.1","sha":"b290430faf946b298352196e245f227f762f8c08","kind":"tag","published_at":"2022-04-26T19:22:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.7.1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.7.1/manifests"},{"name":"v5.2.7","sha":"459e7cf62252558bbf65f582a230562ab1a76c5e","kind":"tag","published_at":"2022-03-10T23:59:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.7","html_url":"https://github.com/rails/rails/releases/tag/v5.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.7/manifests"},{"name":"v6.1.5","sha":"53410537594be0c0a528cff53dce433dd386cb6a","kind":"tag","published_at":"2022-03-10T21:11:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.5","html_url":"https://github.com/rails/rails/releases/tag/v6.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.5/manifests"},{"name":"v7.0.2.3","sha":"de53ba56cab69fb9707785a397a59ac4aaee9d6f","kind":"tag","published_at":"2022-03-08T17:50:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.2.3","html_url":"https://github.com/rails/rails/releases/tag/v7.0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.3/manifests"},{"name":"v6.1.4.7","sha":"66073335585f04f2ed0f5ef930eb3c8955d50a6a","kind":"tag","published_at":"2022-03-08T17:48:35.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4.7","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.7/manifests"},{"name":"v6.0.4.7","sha":"4ba546e960cb368b1b552a3f91a371aced64da4c","kind":"tag","published_at":"2022-03-08T17:47:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.7","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.7/manifests"},{"name":"v5.2.6.3","sha":"b287570dbadcc418ce64b83ebde2746891e12d03","kind":"tag","published_at":"2022-03-08T17:45:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.6.3","html_url":"https://github.com/rails/rails/releases/tag/v5.2.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6.3/manifests"},{"name":"v7.0.2.2","sha":"2459c20afb508c987347f52148210d874a9af4fa","kind":"tag","published_at":"2022-02-11T19:43:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.2.2","html_url":"https://github.com/rails/rails/releases/tag/v7.0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.2/manifests"},{"name":"v6.1.4.6","sha":"10a2c77e901eb15b486f2c72fd9997bd0e2d506c","kind":"tag","published_at":"2022-02-11T19:41:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4.6","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.6/manifests"},{"name":"v6.0.4.6","sha":"5f85a37f49227a76ec472eb74954b54806028641","kind":"tag","published_at":"2022-02-11T19:39:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.6","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.6/manifests"},{"name":"v5.2.6.2","sha":"46fe51b4875ba947cd3317cef420042f22aa8ffd","kind":"tag","published_at":"2022-02-11T19:37:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.6.2","html_url":"https://github.com/rails/rails/releases/tag/v5.2.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6.2/manifests"},{"name":"v5.2.6.1","sha":"9c111dcbb9d15bbc8328edbae03e67746cdec314","kind":"tag","published_at":"2022-02-11T18:38:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.6.1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6.1/manifests"},{"name":"v6.0.4.5","sha":"c06fa92a3f8b3ff88c85ce587630c451ea3396a6","kind":"tag","published_at":"2022-02-11T18:24:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.5","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.5/manifests"},{"name":"v6.1.4.5","sha":"6d25fed5c70bc1bd3292f69692c82063dd32320a","kind":"tag","published_at":"2022-02-11T18:22:29.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4.5","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.5/manifests"},{"name":"v7.0.2.1","sha":"365e0fe8c346a90c91d2f622b4bdae2fbb11a940","kind":"tag","published_at":"2022-02-11T18:18:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.2.1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2.1/manifests"},{"name":"v7.0.2","sha":"76489d81ba77216271870e11fba6889088016fa5","kind":"tag","published_at":"2022-02-08T23:10:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.2","html_url":"https://github.com/rails/rails/releases/tag/v7.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.2/manifests"},{"name":"v7.0.1","sha":"6bfc637659248df5d6719a86d2981b52662d9b50","kind":"tag","published_at":"2022-01-06T21:53:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.1/manifests"},{"name":"v7.0.0","sha":"984c3ef2775781d47efa9f541ce570daa2434a80","kind":"tag","published_at":"2021-12-15T23:42:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.0","html_url":"https://github.com/rails/rails/releases/tag/v7.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0/manifests"},{"name":"v6.1.4.4","sha":"87d4d0f4126f64d991d40a1827de50935ddfdbff","kind":"tag","published_at":"2021-12-15T22:52:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4.4","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.4/manifests"},{"name":"v6.0.4.4","sha":"34bd524a9d7580ceecbf4a6dd9dced6296e20f97","kind":"tag","published_at":"2021-12-15T22:45:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.4","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.4/manifests"},{"name":"v7.0.0.rc3","sha":"834cc1aee3b3a9e0f5884fde1242c6d7b5e8a3dd","kind":"tag","published_at":"2021-12-14T23:04:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.0.rc3","html_url":"https://github.com/rails/rails/releases/tag/v7.0.0.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.0.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.rc3/manifests"},{"name":"v6.1.4.3","sha":"ac2e12a0fd1ff17de5021d4150df7feb864fc83d","kind":"tag","published_at":"2021-12-14T23:02:12.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4.3","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.3/manifests"},{"name":"v6.0.4.3","sha":"0cc179fdc77e57ee2756769ec4d14203d93e2354","kind":"tag","published_at":"2021-12-14T23:00:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.3","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.3/manifests"},{"name":"v6.0.4.2","sha":"9ef61211d7861093a69fa1fbfc2ba136abd37cd2","kind":"tag","published_at":"2021-12-14T20:09:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.2","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.2/manifests"},{"name":"v6.1.4.2","sha":"5e52f65fe99c46d40602f2b46418a3f9fee2260e","kind":"tag","published_at":"2021-12-14T19:45:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4.2","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.2/manifests"},{"name":"v7.0.0.rc2","sha":"69e2e898478a1795913b8fda7cb95079228f8fb2","kind":"tag","published_at":"2021-12-14T19:39:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v7.0.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.rc2/manifests"},{"name":"v7.0.0.rc1","sha":"7c10fe108adfb1cd1c35ce44d5fbc0dd820c76d4","kind":"tag","published_at":"2021-12-06T21:27:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.rc1/manifests"},{"name":"v7.0.0.alpha2","sha":"ceb4b94baaf17f3a9f4ea795c83ec6c67211f737","kind":"tag","published_at":"2021-09-15T23:14:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.0.alpha2","html_url":"https://github.com/rails/rails/releases/tag/v7.0.0.alpha2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.0.alpha2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.alpha2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.alpha2/manifests"},{"name":"v7.0.0.alpha1","sha":"9b7be48212a2b6979b8af5093bb58ee5087e5044","kind":"tag","published_at":"2021-09-15T21:55:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v7.0.0.alpha1","html_url":"https://github.com/rails/rails/releases/tag/v7.0.0.alpha1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v7.0.0.alpha1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.alpha1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v7.0.0.alpha1/manifests"},{"name":"v6.1.4.1","sha":"90357af08048ef5076730505f6e7b14a81f33d0c","kind":"tag","published_at":"2021-08-19T16:25:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4.1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4.1/manifests"},{"name":"v6.0.4.1","sha":"0d304eae601f085274b2e2c04316e025b443da62","kind":"tag","published_at":"2021-08-19T16:15:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4.1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4.1/manifests"},{"name":"v6.1.4","sha":"83217025a171593547d1268651b446d3533e2019","kind":"tag","published_at":"2021-06-24T20:39:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.4","html_url":"https://github.com/rails/rails/releases/tag/v6.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.4/manifests"},{"name":"v6.0.4","sha":"6e721d79ba9458317c93bb02590bbaa25c5a3649","kind":"tag","published_at":"2021-06-15T20:14:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.4","html_url":"https://github.com/rails/rails/releases/tag/v6.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.4/manifests"},{"name":"v5.2.6","sha":"48661542a2607d55f436438fe21001d262e61fec","kind":"tag","published_at":"2021-05-05T17:02:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.6","html_url":"https://github.com/rails/rails/releases/tag/v5.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.6/manifests"},{"name":"v6.0.3.7","sha":"c04aff675d4cd3e8a54e0008dbfca10a8832a414","kind":"tag","published_at":"2021-05-05T16:01:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.7","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.7/manifests"},{"name":"v6.1.3.2","sha":"75ac626c4e21129d8296d4206a1960563cc3d4aa","kind":"tag","published_at":"2021-05-05T15:34:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.3.2","html_url":"https://github.com/rails/rails/releases/tag/v6.1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.3.2/manifests"},{"name":"v5.2.4.6","sha":"26126839058bad41120b5d74f3cc06b93baa987e","kind":"tag","published_at":"2021-05-05T15:28:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4.6","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.6/manifests"},{"name":"v6.1.3.1","sha":"85c6823b77b60f2a3a6a25d7a1013032e8c580ef","kind":"tag","published_at":"2021-03-26T18:05:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.3.1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.3.1/manifests"},{"name":"v6.0.3.6","sha":"0073c7b29339b2ee1e11aa5c9622ea452d0633fc","kind":"tag","published_at":"2021-03-26T17:31:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.6","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.6/manifests"},{"name":"v5.2.5","sha":"cb0a558f42fc6957fac4d2daa16771b72ff7da6e","kind":"tag","published_at":"2021-03-26T17:16:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.5","html_url":"https://github.com/rails/rails/releases/tag/v5.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.5/manifests"},{"name":"v6.1.3","sha":"5aaaa1630ae9a71b3c3ecc4dc46074d678c08d67","kind":"tag","published_at":"2021-02-17T18:39:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.3","html_url":"https://github.com/rails/rails/releases/tag/v6.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.3/manifests"},{"name":"v6.1.2.1","sha":"130c128eae233bf71231c73b9c3c3b3f3ede918b","kind":"tag","published_at":"2021-02-10T20:44:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.2.1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.2.1/manifests"},{"name":"v6.0.3.5","sha":"c5929d5eb55b749bc124b3ccc2d79323d015701f","kind":"tag","published_at":"2021-02-10T20:39:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.5","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.5/manifests"},{"name":"v5.2.4.5","sha":"dc7364b1f39cf2fa3c3af3ea0f239f9ae1b5a790","kind":"tag","published_at":"2021-02-10T20:34:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4.5","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.5/manifests"},{"name":"v6.1.2","sha":"bf8c59cd896b1bf98d0f3df356531fa4c163219f","kind":"tag","published_at":"2021-02-09T21:27:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.2","html_url":"https://github.com/rails/rails/releases/tag/v6.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.2/manifests"},{"name":"v6.1.1","sha":"5f3ff60084ab5d5921ca3499814e4697f8350ee7","kind":"tag","published_at":"2021-01-07T22:58:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.1/manifests"},{"name":"v6.1.0","sha":"914caca2d31bd753f47f9168f2a375921d9e91cc","kind":"tag","published_at":"2020-12-09T19:56:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.0","html_url":"https://github.com/rails/rails/releases/tag/v6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.0/manifests"},{"name":"v6.1.0.rc2","sha":"b38eb45ad9cb2041b30ac5d4d7b5b6e7b911ff2e","kind":"tag","published_at":"2020-12-01T22:00:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v6.1.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.0.rc2/manifests"},{"name":"v6.1.0.rc1","sha":"8389f9902c3f0e984df17a77386493f856d7a1bb","kind":"tag","published_at":"2020-11-02T21:13:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.1.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v6.1.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.1.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.1.0.rc1/manifests"},{"name":"v6.0.3.4","sha":"fe76a95b0d252a2d7c25e69498b720c96b243ea2","kind":"tag","published_at":"2020-10-07T16:49:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.4","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.4/manifests"},{"name":"v5.2.4.4","sha":"404ad9e8acf8ab45ae2314050131a00e57e63b40","kind":"tag","published_at":"2020-09-09T18:35:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4.4","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.4/manifests"},{"name":"v6.0.3.3","sha":"070d4afacd3e9721b7e3a4634e4d026b5fa2c32c","kind":"tag","published_at":"2020-09-09T18:18:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.3","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.3/manifests"},{"name":"v6.0.3.2","sha":"fbe2433be6e052a1acac63c7faf287c52ed3c5ba","kind":"tag","published_at":"2020-06-17T14:53:35.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.2","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.2/manifests"},{"name":"v6.0.3.1","sha":"34991a6ae2fc68347c01ea7382fa89004159e019","kind":"tag","published_at":"2020-05-18T15:46:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.1/manifests"},{"name":"v5.2.4.3","sha":"7b5cc5a5dfcf38522be0a4b5daa97c5b2ba26c20","kind":"tag","published_at":"2020-05-18T15:41:33.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4.3","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.3/manifests"},{"name":"v4.2.11.3","sha":"11f2bdf75a888682b34df0f9be03b94f54fc6796","kind":"tag","published_at":"2020-05-15T18:34:39.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.11.3","html_url":"https://github.com/rails/rails/releases/tag/v4.2.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.11.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11.3/manifests"},{"name":"v4.2.11.2","sha":"b9e5577b9943e21a216acccdc29c297585424c58","kind":"tag","published_at":"2020-05-15T16:29:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.11.2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.11.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11.2/manifests"},{"name":"v6.0.3","sha":"b738f1930f3c82f51741ef7241c1fee691d7deb2","kind":"tag","published_at":"2020-05-06T18:03:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3/manifests"},{"name":"v6.0.3.rc1","sha":"509b9da209a8481fef8310bc14d6c6cd27c629dc","kind":"tag","published_at":"2020-05-01T17:16:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.3.rc1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.3.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.3.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.3.rc1/manifests"},{"name":"v6.0.2.2","sha":"157920aead96865e3135f496c09ace607d5620dc","kind":"tag","published_at":"2020-03-19T16:43:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.2.2","html_url":"https://github.com/rails/rails/releases/tag/v6.0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.2/manifests"},{"name":"v5.2.4.2","sha":"4dcc5435e9569e084f6f90fcea6e7c37d7bd2b4d","kind":"tag","published_at":"2020-03-19T16:30:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4.2","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.2/manifests"},{"name":"v6.0.2.1","sha":"f33d52c95217212cbacc8d5e44b5a8e3cdc6f5b3","kind":"tag","published_at":"2019-12-18T19:07:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.2.1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.1/manifests"},{"name":"v5.2.4.1","sha":"ac30e389ecfa0e26e3d44c1eda8488ddf63b3ecc","kind":"tag","published_at":"2019-12-18T19:00:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4.1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.1/manifests"},{"name":"v6.0.2","sha":"f675cb30ce813a99b52b139a93e048330922fd9a","kind":"tag","published_at":"2019-12-13T18:08:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.2","html_url":"https://github.com/rails/rails/releases/tag/v6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2/manifests"},{"name":"v6.0.2.rc2","sha":"63107e9914c893336f7612c2cd17a24474b6a6d6","kind":"tag","published_at":"2019-12-09T16:10:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.2.rc2","html_url":"https://github.com/rails/rails/releases/tag/v6.0.2.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.2.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.rc2/manifests"},{"name":"v5.2.4","sha":"8bec77cc0f1fd47677a331a64f68c5918efd2ca9","kind":"tag","published_at":"2019-11-27T15:42:23.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4/manifests"},{"name":"v6.0.2.rc1","sha":"a015f55240258723df311360123af22b3204fa08","kind":"tag","published_at":"2019-11-27T15:08:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.2.rc1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.2.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.2.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.2.rc1/manifests"},{"name":"v5.2.4.rc1","sha":"9e2a34122bd436e92a21ded4a50fa23461c29a4e","kind":"tag","published_at":"2019-11-23T00:26:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.4.rc1/manifests"},{"name":"v6.0.1","sha":"09a2979f75c51afb797dd60261a8930f84144af8","kind":"tag","published_at":"2019-11-05T14:38:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.1/manifests"},{"name":"v6.0.1.rc1","sha":"7982363efabc03e4624cd35aa86e2d284dcd35f7","kind":"tag","published_at":"2019-10-31T20:04:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.1.rc1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.1.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.1.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.1.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.1.rc1/manifests"},{"name":"v6.0.0","sha":"66cabeda2c46c582d19738e1318be8d59584cc5b","kind":"tag","published_at":"2019-08-16T17:59:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.0","html_url":"https://github.com/rails/rails/releases/tag/v6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0/manifests"},{"name":"v6.0.0.rc2","sha":"16f2cd88e3ee92de341ba30b102e9206be3c68a7","kind":"tag","published_at":"2019-07-22T21:08:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v6.0.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.rc2/manifests"},{"name":"v6.0.0.rc1","sha":"01b7e9b73ac9dca92be0969e047b9cb0c767f261","kind":"tag","published_at":"2019-04-24T18:49:12.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.rc1/manifests"},{"name":"v5.2.3","sha":"b9ca94caea2ca6a6cc09abaffaad67b447134079","kind":"tag","published_at":"2019-03-28T02:59:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.3","html_url":"https://github.com/rails/rails/releases/tag/v5.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.3/manifests"},{"name":"v5.1.7","sha":"4f66945cd038bda638fc6729e0d54663d0dfbf22","kind":"tag","published_at":"2019-03-28T02:46:34.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.7","html_url":"https://github.com/rails/rails/releases/tag/v5.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.7/manifests"},{"name":"v5.1.7.rc1","sha":"ce0c4f3c822d75dda3226e92b9fb24f79bbd91d7","kind":"tag","published_at":"2019-03-22T04:11:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.7.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.7.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.7.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.7.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.7.rc1/manifests"},{"name":"v5.2.3.rc1","sha":"657103b603db54aa299055c38d085684f47650ab","kind":"tag","published_at":"2019-03-22T03:34:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.3.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.3.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.3.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.3.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.3.rc1/manifests"},{"name":"v6.0.0.beta3","sha":"7c87fd5635fd830905e17d3cbf1eb2a2215acedf","kind":"tag","published_at":"2019-03-13T17:01:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.0.beta3","html_url":"https://github.com/rails/rails/releases/tag/v6.0.0.beta3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.0.beta3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.beta3/manifests"},{"name":"v5.2.2.1","sha":"e69ff43060c1194d2a3bd9b8d9e23f3ae26b84b5","kind":"tag","published_at":"2019-03-13T16:46:43.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.2.1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.2.1/manifests"},{"name":"v5.1.6.2","sha":"ec8697bf0bfafff7d897fb50e322afe42ddc1623","kind":"tag","published_at":"2019-03-13T16:44:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.6.2","html_url":"https://github.com/rails/rails/releases/tag/v5.1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.6.2/manifests"},{"name":"v5.0.7.2","sha":"c4d3e202e10ae627b3b9c34498afb45450652421","kind":"tag","published_at":"2019-03-13T16:39:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.7.2","html_url":"https://github.com/rails/rails/releases/tag/v5.0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.7.2/manifests"},{"name":"v4.2.11.1","sha":"e06a1e09b6bec32b0a05c72a3ae7ceb00f61bf7d","kind":"tag","published_at":"2019-03-13T16:35:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.11.1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.11.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11.1/manifests"},{"name":"test-tag-1","sha":"1dc4d49f517e5cea99063afd9692b201199484ef","kind":"tag","published_at":"2019-03-13T16:22:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/test-tag-1","html_url":"https://github.com/rails/rails/releases/tag/test-tag-1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@test-tag-1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/test-tag-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/test-tag-1/manifests"},{"name":"v6.0.0.beta2","sha":"5e6e505083c2b0caf85b2f86c6be3ff3d8750857","kind":"tag","published_at":"2019-02-25T22:45:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.0.beta2","html_url":"https://github.com/rails/rails/releases/tag/v6.0.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.0.beta2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.beta2/manifests"},{"name":"v6.0.0.beta1","sha":"5a0230c67f852fb21173f99647e76336897446c1","kind":"tag","published_at":"2019-01-18T20:43:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v6.0.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v6.0.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v6.0.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v6.0.0.beta1/manifests"},{"name":"v5.2.2","sha":"94b5cd3a20edadd6f6b8cf0bdf1a4d4919df86cb","kind":"tag","published_at":"2018-12-04T18:12:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.2","html_url":"https://github.com/rails/rails/releases/tag/v5.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.2/manifests"},{"name":"v5.2.2.rc1","sha":"73ba3027261ef3ef75f29a037d11361240282be4","kind":"tag","published_at":"2018-11-28T22:51:28.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.2.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.2.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.2.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.2.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.2.rc1/manifests"},{"name":"v5.2.1.1","sha":"96dee0e7e5a8dd6ce42999b13d0bd0623073e229","kind":"tag","published_at":"2018-11-27T20:12:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.1.1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.1.1/manifests"},{"name":"v5.1.6.1","sha":"24ab200e26f7faee1f04a1d37b650e0becb79a41","kind":"tag","published_at":"2018-11-27T20:10:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.6.1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.6.1/manifests"},{"name":"v5.0.7.1","sha":"23839528551bebd65c210c51c29b91acff875c01","kind":"tag","published_at":"2018-11-27T20:08:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.7.1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.7.1/manifests"},{"name":"v4.2.11","sha":"474b7392c69852e8932260ea370cd63cf1e4fcaa","kind":"tag","published_at":"2018-11-27T20:06:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.11","html_url":"https://github.com/rails/rails/releases/tag/v4.2.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.11/manifests"},{"name":"v5.2.1","sha":"fc5dd0b85189811062c85520fd70de8389b55aeb","kind":"tag","published_at":"2018-08-07T21:42:35.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.1/manifests"},{"name":"v5.2.1.rc1","sha":"90c033984f38e40c2ff53c036d89ee22c88fadab","kind":"tag","published_at":"2018-07-30T20:09:42.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.1.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.1.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.1.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.1.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.1.rc1/manifests"},{"name":"v5.2.0","sha":"375a4143cf5caeb6159b338be824903edfd62836","kind":"tag","published_at":"2018-04-09T20:04:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.0","html_url":"https://github.com/rails/rails/releases/tag/v5.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0/manifests"},{"name":"v5.1.6","sha":"0ae59ea828ed20141af0d4c9ed9130eb47ce55f3","kind":"tag","published_at":"2018-03-29T18:27:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.6","html_url":"https://github.com/rails/rails/releases/tag/v5.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.6/manifests"},{"name":"v5.0.7","sha":"aea6423f013ca48f7704c70deadf2cd6ac7d70a1","kind":"tag","published_at":"2018-03-29T17:58:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.7","html_url":"https://github.com/rails/rails/releases/tag/v5.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.7/manifests"},{"name":"v5.2.0.rc2","sha":"db7edd81062648281d1e50c8ff9ebfafac5a9c3d","kind":"tag","published_at":"2018-03-20T17:49:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v5.2.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.rc2/manifests"},{"name":"v5.1.5","sha":"6ccd2b0efdfb8e9ef41764ee60dfac9731338608","kind":"tag","published_at":"2018-02-14T19:51:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.5","html_url":"https://github.com/rails/rails/releases/tag/v5.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.5/manifests"},{"name":"v5.1.5.rc1","sha":"f8c00c130016b248d1d409f131356632dcc418c6","kind":"tag","published_at":"2018-02-01T18:57:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.5.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.5.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.5.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.5.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.5.rc1/manifests"},{"name":"v5.2.0.rc1","sha":"6a97a17f195a925959866edda2e951e20d7b1e76","kind":"tag","published_at":"2018-01-30T23:35:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.rc1/manifests"},{"name":"v5.2.0.beta2","sha":"3ae1e1f3c055fe5b89287fb8e0e5b31416383fb8","kind":"tag","published_at":"2017-11-28T05:01:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.0.beta2","html_url":"https://github.com/rails/rails/releases/tag/v5.2.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.0.beta2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.beta2/manifests"},{"name":"v5.2.0.beta1","sha":"382e7d2e23ca8d0ad552dd759b9cbb88751a2fbc","kind":"tag","published_at":"2017-11-27T18:02:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.2.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v5.2.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.2.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.2.0.beta1/manifests"},{"name":"v4.2.10","sha":"6b9a1ac484a4eda1b43aba7ed864952aac743ab9","kind":"tag","published_at":"2017-09-27T14:26:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.10","html_url":"https://github.com/rails/rails/releases/tag/v4.2.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.10/manifests"},{"name":"v4.2.10.rc1","sha":"84e0a231e9100db8eff73a1b6b9ae82db2ade2d8","kind":"tag","published_at":"2017-09-20T19:39:05.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.10.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.10.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.10.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.10.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.10.rc1/manifests"},{"name":"v5.1.4","sha":"813af4655f9bf3c712cf50205eebd337070cee52","kind":"tag","published_at":"2017-09-08T00:49:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.4","html_url":"https://github.com/rails/rails/releases/tag/v5.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.4/manifests"},{"name":"v5.0.6","sha":"71f4758c50fca5220429365c23b014458e7341f6","kind":"tag","published_at":"2017-09-08T00:45:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.6","html_url":"https://github.com/rails/rails/releases/tag/v5.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.6/manifests"},{"name":"v5.1.4.rc1","sha":"df776aabc45b17dff2cf8edbdd3b1367a1c21167","kind":"tag","published_at":"2017-08-24T19:35:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.4.rc1/manifests"},{"name":"v5.0.6.rc1","sha":"656bd2de78f549b353d0c08b54d8a7445d47d2df","kind":"tag","published_at":"2017-08-24T19:09:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.6.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.6.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.6.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.6.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.6.rc1/manifests"},{"name":"v5.1.3","sha":"c338c66f84d847f3ddf06d3e064426c7991e553d","kind":"tag","published_at":"2017-08-03T19:13:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.3","html_url":"https://github.com/rails/rails/releases/tag/v5.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3/manifests"},{"name":"v5.1.3.rc3","sha":"57ff548532b35330e822e27df629a952cf33bf37","kind":"tag","published_at":"2017-07-31T19:11:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.3.rc3","html_url":"https://github.com/rails/rails/releases/tag/v5.1.3.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.3.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3.rc3/manifests"},{"name":"v5.0.5","sha":"450889d1464431a04ef5c8a0f6a45b877aafe506","kind":"tag","published_at":"2017-07-31T19:03:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.5","html_url":"https://github.com/rails/rails/releases/tag/v5.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.5/manifests"},{"name":"v5.0.5.rc2","sha":"a7ad9f18371ebc3a14616cbfe216e6d87cbcba6d","kind":"tag","published_at":"2017-07-25T20:24:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.5.rc2","html_url":"https://github.com/rails/rails/releases/tag/v5.0.5.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.5.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.5.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.5.rc2/manifests"},{"name":"v5.1.3.rc2","sha":"885b69237b40712ddda075796dc881d4da7af55e","kind":"tag","published_at":"2017-07-25T20:16:18.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.3.rc2","html_url":"https://github.com/rails/rails/releases/tag/v5.1.3.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.3.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3.rc2/manifests"},{"name":"v5.0.5.rc1","sha":"872372aa93ae2abdcbb148d318c336563d0ba330","kind":"tag","published_at":"2017-07-19T19:42:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.5.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.5.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.5.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.5.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.5.rc1/manifests"},{"name":"v5.1.3.rc1","sha":"b6e24dbfc8d68c82dd62f2e99d668dca8df9b7f1","kind":"tag","published_at":"2017-07-19T19:29:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.3.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.3.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.3.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.3.rc1/manifests"},{"name":"v5.1.2","sha":"f8f3d709fc0df1fee5eadbaa5f518d2aef4a4f02","kind":"tag","published_at":"2017-06-26T21:49:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.2","html_url":"https://github.com/rails/rails/releases/tag/v5.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.2/manifests"},{"name":"v4.2.9","sha":"79c9f2e9422a23d144b71a18bd3058823b498116","kind":"tag","published_at":"2017-06-26T21:29:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.9","html_url":"https://github.com/rails/rails/releases/tag/v4.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.9/manifests"},{"name":"v5.1.2.rc1","sha":"1a32a58ea7ee61dab2c4628585a3ecb3e2d7320c","kind":"tag","published_at":"2017-06-20T17:02:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.2.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.2.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.2.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.2.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.2.rc1/manifests"},{"name":"v4.2.9.rc2","sha":"e13f5ba35b7105e4e66ff0b236018a6ad934da9f","kind":"tag","published_at":"2017-06-19T22:26:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.9.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.9.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.9.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.9.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.9.rc2/manifests"},{"name":"v5.0.4","sha":"c52823a0cf30a79e1abddc53aa8c6d0494ba5515","kind":"tag","published_at":"2017-06-19T21:57:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.4","html_url":"https://github.com/rails/rails/releases/tag/v5.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.4/manifests"},{"name":"v5.0.4.rc1","sha":"a2e6b307ba632082a9fb0d22716e7fa96da6543d","kind":"tag","published_at":"2017-06-14T20:47:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.4.rc1/manifests"},{"name":"v4.2.9.rc1","sha":"3c184ed4834a85b1eb197b6c530a5af13803f44f","kind":"tag","published_at":"2017-06-13T18:49:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.9.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.9.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.9.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.9.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.9.rc1/manifests"},{"name":"v5.1.1","sha":"c48b21685f4fec1c7a1c9b4e0dde4da89140ee22","kind":"tag","published_at":"2017-05-12T19:58:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.1/manifests"},{"name":"v5.0.3","sha":"52780d5d66515b3d9e5d10d2975deda3699ffd88","kind":"tag","published_at":"2017-05-12T19:53:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.3","html_url":"https://github.com/rails/rails/releases/tag/v5.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.3/manifests"},{"name":"v5.1.0","sha":"ce93740a5e4437dfc1cf9b0b13da1bad06a2a598","kind":"tag","published_at":"2017-04-27T20:59:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.0","html_url":"https://github.com/rails/rails/releases/tag/v5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0/manifests"},{"name":"v5.1.0.rc2","sha":"2745ab856dbd0c0b846a4aa5d15d046e19466c6f","kind":"tag","published_at":"2017-04-21T01:28:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v5.1.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0.rc2/manifests"},{"name":"v5.1.0.rc1","sha":"d3b798b0879c70f3989efd322323a057a8507c99","kind":"tag","published_at":"2017-03-20T18:56:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0.rc1/manifests"},{"name":"v5.0.2","sha":"38ed1f4be114b77bd2004792b9583552a30921a2","kind":"tag","published_at":"2017-03-01T23:12:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.2","html_url":"https://github.com/rails/rails/releases/tag/v5.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.2/manifests"},{"name":"v5.0.2.rc1","sha":"2c858521b8e3a4d00b703a5ec08adbfe6141497c","kind":"tag","published_at":"2017-02-25T00:54:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.2.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.2.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.2.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.2.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.2.rc1/manifests"},{"name":"v5.1.0.beta1","sha":"f4acdd83ff76e2338895073ed914c525e7bb33b4","kind":"tag","published_at":"2017-02-23T19:54:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.1.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v5.1.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.1.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.1.0.beta1/manifests"},{"name":"v4.2.8","sha":"8ee716182df410052707c3d1eabf8bfd8e0e1c5e","kind":"tag","published_at":"2017-02-21T16:07:29.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.8","html_url":"https://github.com/rails/rails/releases/tag/v4.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.8/manifests"},{"name":"v4.2.8.rc1","sha":"8dd608b7b7b60f2fa8c5a3aaa0c8ab465ee50456","kind":"tag","published_at":"2017-02-10T02:43:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.8.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.8.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.8.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.8.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.8.rc1/manifests"},{"name":"v5.0.1","sha":"912ae0b34bf541f18d051c8a274a54aef91a5e04","kind":"tag","published_at":"2016-12-21T00:05:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.1/manifests"},{"name":"v5.0.1.rc2","sha":"0ef292cc8b1d66cbc85e271029402e72dfad66b5","kind":"tag","published_at":"2016-12-09T19:07:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.1.rc2","html_url":"https://github.com/rails/rails/releases/tag/v5.0.1.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.1.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.1.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.1.rc2/manifests"},{"name":"v5.0.1.rc1","sha":"82be3fe096231108e290433b5fe803451a37a160","kind":"tag","published_at":"2016-11-30T19:51:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.1.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.1.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.1.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.1.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.1.rc1/manifests"},{"name":"v3.2.22.5","sha":"e4b0a5f66ebd2b7f29e4f868d2f6b2504df091e6","kind":"tag","published_at":"2016-09-14T21:16:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.22.5","html_url":"https://github.com/rails/rails/releases/tag/v3.2.22.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.22.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.5/manifests"},{"name":"v3.2.22.4","sha":"c4e01690620c319ac3f04d213003f8001f33d14b","kind":"commit","published_at":"2016-08-11T19:17:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.22.4","html_url":"https://github.com/rails/rails/releases/tag/v3.2.22.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.22.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.4/manifests"},{"name":"v5.0.0.1","sha":"cdb307294a43eec489f0ea6ffdc6f0a07b16ff5c","kind":"commit","published_at":"2016-08-10T22:41:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.1/manifests"},{"name":"v4.2.7.1","sha":"26dadfb187b1cf13dc2f783198b91b32d141c3ab","kind":"commit","published_at":"2016-08-10T22:25:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.7.1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.7.1/manifests"},{"name":"v3.2.22.3","sha":"ebc3639139d21eeb8452edb28ce62530cc075198","kind":"commit","published_at":"2016-08-10T22:23:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.22.3","html_url":"https://github.com/rails/rails/releases/tag/v3.2.22.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.22.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.3/manifests"},{"name":"v4.2.7","sha":"7f2327f65b4117384bec3547ccd5a99028df57e0","kind":"tag","published_at":"2016-07-13T02:54:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.7","html_url":"https://github.com/rails/rails/releases/tag/v4.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.7/manifests"},{"name":"v4.1.16","sha":"d8803304051639dfcb87d61f58a1960b1005de87","kind":"tag","published_at":"2016-07-12T22:19:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.16","html_url":"https://github.com/rails/rails/releases/tag/v4.1.16","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.16","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.16/manifests"},{"name":"v4.1.16.rc1","sha":"871d63e2c7632a59989ffce0137b482ab5d94fe5","kind":"tag","published_at":"2016-07-02T02:13:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.16.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.16.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.16.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.16.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.16.rc1/manifests"},{"name":"v4.2.7.rc1","sha":"5a85938418285ab81e3db52ea102d19f95ed7a94","kind":"tag","published_at":"2016-07-01T00:30:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.7.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.7.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.7.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.7.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.7.rc1/manifests"},{"name":"v5.0.0","sha":"2efddadd6cba4e2129acedf1d402d11abcc03996","kind":"tag","published_at":"2016-06-30T21:20:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0/manifests"},{"name":"v5.0.0.rc2","sha":"50e0a6b209d1afe6c2bc3047208e14f13ac3b382","kind":"tag","published_at":"2016-06-22T20:01:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.rc2/manifests"},{"name":"v5.0.0.rc1","sha":"fbdcf5221ad7ea3d40ad09651962fc85d101dd67","kind":"tag","published_at":"2016-05-06T21:55:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.rc1/manifests"},{"name":"v5.0.0.beta4","sha":"f7a986012a6099445e20b6414d253ee0fc039118","kind":"tag","published_at":"2016-04-27T20:53:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.beta4","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.beta4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.beta4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta4/manifests"},{"name":"v4.1.15","sha":"d5c4b82b64f3cdd511eb79c4d43d6ab1548c0dee","kind":"tag","published_at":"2016-03-07T22:35:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.15","html_url":"https://github.com/rails/rails/releases/tag/v4.1.15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.15/manifests"},{"name":"v4.2.6","sha":"a0e0b67b5afbb02d9ea9e48d71ae80b3efb8c0ac","kind":"tag","published_at":"2016-03-07T22:31:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.6","html_url":"https://github.com/rails/rails/releases/tag/v4.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.6/manifests"},{"name":"v4.1.15.rc1","sha":"06d2bfd42a08ebdab9b0ad94e690841a80c93830","kind":"tag","published_at":"2016-03-01T18:42:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.15.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.15.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.15.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.15.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.15.rc1/manifests"},{"name":"v4.2.6.rc1","sha":"ef8ace7dc97fa810bb59f1aac386b71db239c3ec","kind":"tag","published_at":"2016-03-01T18:36:27.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.6.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.6.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.6.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.6.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.6.rc1/manifests"},{"name":"v4.1.14.2","sha":"4cffd33a96da706fb36ab8dbf37732749ca27cfc","kind":"tag","published_at":"2016-02-29T19:17:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.14.2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.14.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.2/manifests"},{"name":"v4.2.5.2","sha":"97ad61e9583e2bf5c57d6f75008cadc80ba9b910","kind":"tag","published_at":"2016-02-29T19:15:29.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.5.2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.2/manifests"},{"name":"v3.2.22.2","sha":"1ac2ddbc433ec96dd06affb6f10f33d9eb12d52a","kind":"commit","published_at":"2016-02-29T18:39:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.22.2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.22.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.22.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.2/manifests"},{"name":"v5.0.0.beta3","sha":"dbfa8fdfc29eb913fec6113a74394167aa13cdd6","kind":"tag","published_at":"2016-02-24T16:15:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.beta3","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.beta3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.beta3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta3/manifests"},{"name":"v5.0.0.beta2","sha":"49f6ce63f33b7817bcbd0cdf5f8881b63f40d9c9","kind":"tag","published_at":"2016-02-01T21:41:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.beta2","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.beta2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta2/manifests"},{"name":"v3.2.22.1","sha":"8d86637fb64ae8ae81ab71a286ddba02cc3144a4","kind":"tag","published_at":"2016-01-25T18:27:28.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.22.1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.22.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.22.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22.1/manifests"},{"name":"v4.1.14.1","sha":"31ab3aa0e881acfd1475abae602455905a4cadf1","kind":"tag","published_at":"2016-01-25T18:26:23.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.14.1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.1/manifests"},{"name":"v4.2.5.1","sha":"bb382b7aee116446518ca4ed1c6472d6b58f42b5","kind":"tag","published_at":"2016-01-25T18:25:38.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.5.1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.1/manifests"},{"name":"v5.0.0.beta1.1","sha":"908c011395cc9e3ea1bb195f9d1bd30a9d9df98f","kind":"tag","published_at":"2016-01-25T18:24:28.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.beta1.1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.beta1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.beta1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta1.1/manifests"},{"name":"v5.0.0.beta1","sha":"099ddfdefd44fda11d0f6a72f934f8a0ee83141b","kind":"tag","published_at":"2015-12-18T21:15:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v5.0.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v5.0.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v5.0.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v5.0.0.beta1/manifests"},{"name":"v4.1.14","sha":"e694ac5fbc30bfe11c5b952084eab178bd649857","kind":"tag","published_at":"2015-11-12T17:19:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.14","html_url":"https://github.com/rails/rails/releases/tag/v4.1.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14/manifests"},{"name":"v4.2.5","sha":"73521d586981279a99d3ba038d62e2414125df7a","kind":"tag","published_at":"2015-11-12T17:02:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.5","html_url":"https://github.com/rails/rails/releases/tag/v4.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5/manifests"},{"name":"v4.2.5.rc2","sha":"5bda404fe1d7b5772560fdec99818b239d4b57aa","kind":"tag","published_at":"2015-11-05T03:00:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.5.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.5.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.5.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.rc2/manifests"},{"name":"v4.1.14.rc2","sha":"96c4b1a1311b0f9e099db2819f08a2277377c552","kind":"tag","published_at":"2015-11-05T02:53:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.14.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.14.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.14.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.rc2/manifests"},{"name":"v4.2.5.rc1","sha":"a37d0e57571f37e836638934a4e325c3accb550b","kind":"tag","published_at":"2015-10-30T20:46:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.5.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.5.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.5.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.5.rc1/manifests"},{"name":"v4.1.14.rc1","sha":"23df8809089cf3e5646829095ab0433f93f3e736","kind":"tag","published_at":"2015-10-30T20:43:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.14.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.14.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.14.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.14.rc1/manifests"},{"name":"v3.2.21.github15","sha":"cd41d7f7ed7877f54f9e63a1bdb4f3dbc54c39d8","kind":"tag","published_at":"2015-10-23T19:40:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.21.github15","html_url":"https://github.com/rails/rails/releases/tag/v3.2.21.github15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.21.github15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github15/manifests"},{"name":"v3.2.21.github7","sha":"1cd10a985883a9f67f283f101a0543bc177e2543","kind":"tag","published_at":"2015-10-23T16:10:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.21.github7","html_url":"https://github.com/rails/rails/releases/tag/v3.2.21.github7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.21.github7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github7/manifests"},{"name":"v4.2.4","sha":"dac822ef58ae05f0e805222fa8744116080165ac","kind":"tag","published_at":"2015-08-24T18:23:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.4","html_url":"https://github.com/rails/rails/releases/tag/v4.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.4/manifests"},{"name":"v4.1.13","sha":"10ac0155b19ea5b457417244f4f327404b997935","kind":"tag","published_at":"2015-08-24T17:59:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.13","html_url":"https://github.com/rails/rails/releases/tag/v4.1.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.13/manifests"},{"name":"v4.2.4.rc1","sha":"b5cb514c23f64ffd6db05535730df2b4f71f0c61","kind":"tag","published_at":"2015-08-14T15:18:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.4.rc1/manifests"},{"name":"v4.1.13.rc1","sha":"099a9181fcf350b05bc33b61bac288277b994ad0","kind":"tag","published_at":"2015-08-14T15:09:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.13.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.13.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.13.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.13.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.13.rc1/manifests"},{"name":"v4.2.3","sha":"6ac6daa43e1c5b7388f8fd69f8117eb7668887c7","kind":"tag","published_at":"2015-06-25T21:28:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.3","html_url":"https://github.com/rails/rails/releases/tag/v4.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.3/manifests"},{"name":"v4.1.12","sha":"adfda00f06248435e0aa2fc6545b1310644d91b6","kind":"tag","published_at":"2015-06-25T21:24:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.12","html_url":"https://github.com/rails/rails/releases/tag/v4.1.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.12/manifests"},{"name":"v3.2.21.github6","sha":"a31c67b20ca58d5702c21284eab55c48b13e5fff","kind":"commit","published_at":"2015-06-25T17:34:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.21.github6","html_url":"https://github.com/rails/rails/releases/tag/v3.2.21.github6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.21.github6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github6/manifests"},{"name":"v4.2.3.rc1","sha":"496bbfe0897b06c8af1404b59fca7869a27c870d","kind":"tag","published_at":"2015-06-22T14:21:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.3.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.3.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.3.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.3.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.3.rc1/manifests"},{"name":"v4.1.12.rc1","sha":"68d324549668169a41bb30f98afdd01682bc5dec","kind":"tag","published_at":"2015-06-22T14:03:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.12.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.12.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.12.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.12.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.12.rc1/manifests"},{"name":"v4.2.2","sha":"5d101c33fa19deca00e251152d25090cc152998f","kind":"tag","published_at":"2015-06-16T18:00:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.2/manifests"},{"name":"v4.1.11","sha":"260da06e6b63f4644fe67e67fbd486585f9d2724","kind":"tag","published_at":"2015-06-16T17:57:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.11","html_url":"https://github.com/rails/rails/releases/tag/v4.1.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.11/manifests"},{"name":"v3.2.22","sha":"9dc8ddc39424818a3d713a353353ac20cb431218","kind":"commit","published_at":"2015-06-16T16:12:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.22","html_url":"https://github.com/rails/rails/releases/tag/v3.2.22","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.22","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.22/manifests"},{"name":"v3.2.21.github5","sha":"ef93ff18cee87c505efea9f59617d0824c8f31d4","kind":"commit","published_at":"2015-06-10T01:50:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.21.github5","html_url":"https://github.com/rails/rails/releases/tag/v3.2.21.github5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.21.github5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21.github5/manifests"},{"name":"v4.0.13.github1","sha":"754cc500ade37d5e24a98292db99713704ac699f","kind":"commit","published_at":"2015-05-27T04:03:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.13.github1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.13.github1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.13.github1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13.github1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13.github1/manifests"},{"name":"v4.0.13.github0","sha":"d85ceb59b52ba424c6ce664f52714c5e222ab06b","kind":"commit","published_at":"2015-05-15T06:35:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.13.github0","html_url":"https://github.com/rails/rails/releases/tag/v4.0.13.github0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.13.github0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13.github0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13.github0/manifests"},{"name":"v4.1.10","sha":"5496ec8aac95f728465f218d12733cedef84232a","kind":"tag","published_at":"2015-03-19T16:48:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.10","html_url":"https://github.com/rails/rails/releases/tag/v4.1.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10/manifests"},{"name":"v4.2.1","sha":"f1ccb2e6ecb5486179ee6b20438d562ac45de4f4","kind":"tag","published_at":"2015-03-19T16:39:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1/manifests"},{"name":"v4.1.10.rc4","sha":"410f7d29e998befb27ab0b3dee3bbe83944bdc04","kind":"tag","published_at":"2015-03-12T21:31:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.10.rc4","html_url":"https://github.com/rails/rails/releases/tag/v4.1.10.rc4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.10.rc4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc4/manifests"},{"name":"v4.2.1.rc4","sha":"9bd0ca4501879709fcc84a6b206835fe4ead751f","kind":"tag","published_at":"2015-03-12T21:24:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.1.rc4","html_url":"https://github.com/rails/rails/releases/tag/v4.2.1.rc4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.1.rc4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc4/manifests"},{"name":"v4.1.10.rc3","sha":"77e324b59ec0e0b09f5c26b035add9de40482470","kind":"tag","published_at":"2015-03-02T21:38:18.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.10.rc3","html_url":"https://github.com/rails/rails/releases/tag/v4.1.10.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.10.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc3/manifests"},{"name":"v4.2.1.rc3","sha":"4e2754b5c73e2fd6a8f997beafcbeff888410581","kind":"tag","published_at":"2015-03-02T21:34:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.1.rc3","html_url":"https://github.com/rails/rails/releases/tag/v4.2.1.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.1.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc3/manifests"},{"name":"v4.1.10.rc2","sha":"08217de91143353f263ede79bcc01d529f644c30","kind":"tag","published_at":"2015-02-25T22:20:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.10.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.10.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.10.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc2/manifests"},{"name":"v4.2.1.rc2","sha":"d48bb9cb018a83a88dd04c9a4cbdee1f5b7ab885","kind":"tag","published_at":"2015-02-25T22:18:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.1.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.1.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.1.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc2/manifests"},{"name":"v4.1.10.rc1","sha":"a698862cbce7f12475d3fefdb7268022b3bd9af1","kind":"tag","published_at":"2015-02-20T22:23:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.10.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.10.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.10.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.10.rc1/manifests"},{"name":"v4.2.1.rc1","sha":"59bb184078cc23fbbb3a28dc34a51326da87014a","kind":"tag","published_at":"2015-02-20T21:40:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.1.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.1.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.1.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.1.rc1/manifests"},{"name":"v4.1.9","sha":"cca85ba699242c3266c5132dd601fdd8c5c5bb16","kind":"tag","published_at":"2015-01-06T20:02:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.9","html_url":"https://github.com/rails/rails/releases/tag/v4.1.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.9/manifests"},{"name":"v4.0.13","sha":"3c194d4a8d585547d1fe45f596d2800c155b1a4c","kind":"commit","published_at":"2015-01-06T19:14:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.13","html_url":"https://github.com/rails/rails/releases/tag/v4.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13/manifests"},{"name":"v4.1.9.rc1","sha":"116695b25890e2587923d4a237ce4107e3adb145","kind":"tag","published_at":"2015-01-02T01:09:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.9.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.9.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.9.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.9.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.9.rc1/manifests"},{"name":"v4.0.13.rc1","sha":"e63670a414828148b688eb0efb1e8e626798e7d9","kind":"commit","published_at":"2015-01-02T00:53:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.13.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.13.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.13.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.13.rc1/manifests"},{"name":"v4.2.0","sha":"7847a19f476fb9bee287681586d872ea43785e53","kind":"tag","published_at":"2014-12-20T00:14:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0/manifests"},{"name":"v4.2.0.rc3","sha":"203000dd4683e2ce4bdeaa3fe379b811ba8e5401","kind":"tag","published_at":"2014-12-13T02:57:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0.rc3","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.rc3/manifests"},{"name":"v4.2.0.rc2","sha":"4c67c1f551f182aa2730a8a8cfa80fcf02622a92","kind":"tag","published_at":"2014-12-05T23:19:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.rc2/manifests"},{"name":"v4.2.0.rc1","sha":"62264419e95a75da7762caf7d566982d24227794","kind":"tag","published_at":"2014-11-28T17:51:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.rc1/manifests"},{"name":"v4.1.7.1","sha":"7b8e4f82717fcb944eb7e712050b223bd47b544e","kind":"tag","published_at":"2014-11-19T19:10:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.7.1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.7.1/manifests"},{"name":"v4.0.11.1","sha":"a1ec4da291dd3e0705be536e71a963d8d356ff24","kind":"commit","published_at":"2014-11-19T17:43:33.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.11.1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.11.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.11.1/manifests"},{"name":"v4.1.8","sha":"b32babc4b0ff8f830933f25375ce9dbfbb356601","kind":"tag","published_at":"2014-11-17T15:50:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.8","html_url":"https://github.com/rails/rails/releases/tag/v4.1.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.8/manifests"},{"name":"v4.0.12","sha":"ee20103f1b2fa2ea66834682c7173bb23ddd83e0","kind":"tag","published_at":"2014-11-17T15:49:39.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.12","html_url":"https://github.com/rails/rails/releases/tag/v4.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.12/manifests"},{"name":"v3.2.21","sha":"ba886f73a2b4a06f3400f0698290c54566639b6a","kind":"tag","published_at":"2014-11-17T15:48:35.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.21","html_url":"https://github.com/rails/rails/releases/tag/v3.2.21","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.21","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.21/manifests"},{"name":"v3.2.19.github9","sha":"4fc14b1f718f26cae982ba97be3341fa8ddf3f7f","kind":"commit","published_at":"2014-11-10T04:30:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github9","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github9/manifests"},{"name":"v4.2.0.beta4","sha":"4daebedcc41e35079c47d5f130f5c7ad12db8bbb","kind":"commit","published_at":"2014-10-30T21:12:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0.beta4","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0.beta4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0.beta4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta4/manifests"},{"name":"v3.2.20","sha":"346acea281f048c853a6318429daac8d1a2e2d68","kind":"tag","published_at":"2014-10-29T22:40:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.20","html_url":"https://github.com/rails/rails/releases/tag/v3.2.20","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.20","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.20/manifests"},{"name":"v4.0.11","sha":"8cf8a08c7ef417b5183928f1c3c6d785c115bb48","kind":"tag","published_at":"2014-10-29T22:39:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.11","html_url":"https://github.com/rails/rails/releases/tag/v4.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.11/manifests"},{"name":"v4.1.7","sha":"6fe2572af11dc42f33d4f0e33a22391a85f2a1d2","kind":"tag","published_at":"2014-10-29T22:38:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.7","html_url":"https://github.com/rails/rails/releases/tag/v4.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.7/manifests"},{"name":"v4.2.0.beta3","sha":"331d7c6f9e6a481a23e5f120d95f7c0aabb6c60d","kind":"tag","published_at":"2014-10-29T22:38:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0.beta3","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0.beta3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0.beta3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta3/manifests"},{"name":"v3.2.19.github8","sha":"726e9963067c536c15e7994f0db772a80d4a963a","kind":"commit","published_at":"2014-10-09T06:42:43.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github8","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github8/manifests"},{"name":"v3.2.19.github7","sha":"b6f150c40c3fdda7b198bd8779768344fa3eb5fa","kind":"commit","published_at":"2014-10-07T05:41:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github7","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github7/manifests"},{"name":"v3.2.19.github6","sha":"0a3c7ba903767d07b3cf1cb95da6922a48d25c81","kind":"commit","published_at":"2014-10-07T05:29:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github6","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github6/manifests"},{"name":"v4.2.0.beta2","sha":"21bc83306b76c456e83f8824cb5822f9f1195d9c","kind":"tag","published_at":"2014-09-26T17:39:33.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0.beta2","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0.beta2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta2/manifests"},{"name":"v3.2.19.github5","sha":"56d2614309a5c84e4cf9670a4a7a26926ebb618a","kind":"commit","published_at":"2014-09-26T06:58:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github5","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github5/manifests"},{"name":"v3.2.19.github4","sha":"90ded51cc137ab136b5a4452eced5c944124adc5","kind":"commit","published_at":"2014-09-26T05:42:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github4","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github4/manifests"},{"name":"v3.2.19.github3","sha":"7ed2b48747d57d7051f0f3c761afc04cd3d7d079","kind":"commit","published_at":"2014-09-19T08:26:43.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github3","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github3/manifests"},{"name":"v3.2.19.github2","sha":"923ee6adf84fe278e520c48f0ff95875a2fbf6a2","kind":"commit","published_at":"2014-09-18T08:05:34.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19.github2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19.github2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19.github2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19.github2/manifests"},{"name":"3.2.19.github1","sha":"e27d15746c9b82e921b3dbbdcac57fb5ed71cc75","kind":"commit","published_at":"2014-09-16T01:50:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/3.2.19.github1","html_url":"https://github.com/rails/rails/releases/tag/3.2.19.github1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@3.2.19.github1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.2.19.github1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.2.19.github1/manifests"},{"name":"v4.0.10","sha":"5aef91ea98f5df16ab6b9db14229dfba7dee1653","kind":"commit","published_at":"2014-09-11T17:31:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.10","html_url":"https://github.com/rails/rails/releases/tag/v4.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.10/manifests"},{"name":"v4.1.6","sha":"24027162dbe226acfbf3a91872237a9557764d72","kind":"tag","published_at":"2014-09-11T17:24:29.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.6","html_url":"https://github.com/rails/rails/releases/tag/v4.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.6/manifests"},{"name":"v4.1.6.rc2","sha":"57d65e3b286dcddbc4f07db1c618da42f31d1b84","kind":"tag","published_at":"2014-09-08T18:10:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.6.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.6.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.6.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.6.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.6.rc2/manifests"},{"name":"v4.0.10.rc2","sha":"91d4433d18b646a8ceb02ea13939ede4710b89ed","kind":"commit","published_at":"2014-09-08T17:53:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.10.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.0.10.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.10.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.10.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.10.rc2/manifests"},{"name":"v4.2.0.beta1","sha":"6a23bf0f4c33151e0cec0648e271dc6f5ab3f686","kind":"tag","published_at":"2014-08-20T02:33:35.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.2.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v4.2.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.2.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.2.0.beta1/manifests"},{"name":"v4.1.6.rc1","sha":"c5310bed8642656ade02d97c6fae651b54654a6b","kind":"tag","published_at":"2014-08-19T20:51:27.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.6.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.6.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.6.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.6.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.6.rc1/manifests"},{"name":"v4.0.10.rc1","sha":"77b60a2c43c1188d4d2d2e52fa5fd59b50e92e1b","kind":"commit","published_at":"2014-08-19T17:41:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.10.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.10.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.10.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.10.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.10.rc1/manifests"},{"name":"3.1.12.github1","sha":"808b03caeaceb09ab5d31465852182f03f658ee8","kind":"commit","published_at":"2014-08-18T17:40:42.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/3.1.12.github1","html_url":"https://github.com/rails/rails/releases/tag/3.1.12.github1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@3.1.12.github1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.1.12.github1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.1.12.github1/manifests"},{"name":"v4.1.5","sha":"9bb76261d39b59e7e229c80d052ca91a65ff17be","kind":"tag","published_at":"2014-08-18T16:58:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.5","html_url":"https://github.com/rails/rails/releases/tag/v4.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.5/manifests"},{"name":"v4.0.9","sha":"b792566f3ebdd0c7dc688db7a4076d1c2c74f69f","kind":"commit","published_at":"2014-08-18T16:46:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.9","html_url":"https://github.com/rails/rails/releases/tag/v4.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.9/manifests"},{"name":"v4.1.4","sha":"7c4bfe1c954ef90acf4f790e46fcbbd07d85af3e","kind":"tag","published_at":"2014-07-02T19:52:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.4","html_url":"https://github.com/rails/rails/releases/tag/v4.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.4/manifests"},{"name":"v4.0.8","sha":"31e922996b97b7c223ebc1e26d1a1a2764bb0a62","kind":"commit","published_at":"2014-07-02T18:28:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.8","html_url":"https://github.com/rails/rails/releases/tag/v4.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.8/manifests"},{"name":"v4.1.3","sha":"dfa7a76de8c1f7af0ef28119f9ac3072057c665e","kind":"tag","published_at":"2014-07-02T17:04:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.3","html_url":"https://github.com/rails/rails/releases/tag/v4.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.3/manifests"},{"name":"v4.0.7","sha":"f17b04a23e7c597876cb2320ef9d525537e0b0a8","kind":"commit","published_at":"2014-07-02T15:58:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.7","html_url":"https://github.com/rails/rails/releases/tag/v4.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.7/manifests"},{"name":"v3.2.19","sha":"53c845cb185036c71cc9793c4eb6bf4dc989307b","kind":"commit","published_at":"2014-07-02T15:55:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.19","html_url":"https://github.com/rails/rails/releases/tag/v3.2.19","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.19","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.19/manifests"},{"name":"v4.1.2","sha":"0690f6f3a47b8fddf60ac57da006f0b8bfa22e32","kind":"tag","published_at":"2014-06-26T14:48:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2/manifests"},{"name":"v4.0.6","sha":"276b72c60342eb716e7457b447bce1e352780e92","kind":"commit","published_at":"2014-06-26T13:37:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.6","html_url":"https://github.com/rails/rails/releases/tag/v4.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6/manifests"},{"name":"3.0.20.github4","sha":"d5eff4fba90e7cead50c196d0760aaab1283b440","kind":"commit","published_at":"2014-06-23T22:16:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/3.0.20.github4","html_url":"https://github.com/rails/rails/releases/tag/3.0.20.github4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@3.0.20.github4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github4/manifests"},{"name":"v4.1.2.rc3","sha":"6ed0f63398ba7268c541f9b959f7a56b68584301","kind":"tag","published_at":"2014-06-23T17:26:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.2.rc3","html_url":"https://github.com/rails/rails/releases/tag/v4.1.2.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.2.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2.rc3/manifests"},{"name":"v4.0.6.rc3","sha":"9649cb4b51c7f0194e02252e5b88a362a70da97f","kind":"commit","published_at":"2014-06-23T17:21:34.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.6.rc3","html_url":"https://github.com/rails/rails/releases/tag/v4.0.6.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.6.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6.rc3/manifests"},{"name":"3.0.20.github3","sha":"b46168e048931d7d2fcc1a40bc99e1ffd113ad82","kind":"commit","published_at":"2014-06-19T20:31:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/3.0.20.github3","html_url":"https://github.com/rails/rails/releases/tag/3.0.20.github3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@3.0.20.github3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github3/manifests"},{"name":"3.0.20.github2","sha":"a3e2e39c9ffe6c8906e2a7a214cd8e85e36f6cf3","kind":"commit","published_at":"2014-06-17T06:03:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/3.0.20.github2","html_url":"https://github.com/rails/rails/releases/tag/3.0.20.github2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@3.0.20.github2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github2/manifests"},{"name":"v4.1.2.rc2","sha":"5006b63ae3609aee86c4dae603d8dfe80230b1b1","kind":"tag","published_at":"2014-06-16T16:28:54.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.2.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.2.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.2.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2.rc2/manifests"},{"name":"v4.0.6.rc2","sha":"13c6bac0b73d4bba9cf0714b65cd1e339ee481b2","kind":"commit","published_at":"2014-06-16T16:14:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.6.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.0.6.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.6.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6.rc2/manifests"},{"name":"3.0.20.github1","sha":"b3037287784eddd7a9d311b82cbfae259de8f96d","kind":"commit","published_at":"2014-06-16T03:04:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/3.0.20.github1","html_url":"https://github.com/rails/rails/releases/tag/3.0.20.github1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@3.0.20.github1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/3.0.20.github1/manifests"},{"name":"github49","sha":"51d573aabebcf56c17fe755a160f9c4246edd64a","kind":"commit","published_at":"2014-06-13T05:49:17.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github49","html_url":"https://github.com/rails/rails/releases/tag/github49","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github49","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github49","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github49/manifests"},{"name":"v4.1.2.rc1","sha":"fcb1afc245455130ca6d42db8760cc7b43b99d18","kind":"tag","published_at":"2014-05-27T16:11:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.2.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.2.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.2.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.2.rc1/manifests"},{"name":"v4.0.6.rc1","sha":"100682883ba38cd8420350ef21d47f26e1b9c6c5","kind":"commit","published_at":"2014-05-27T15:58:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.6.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.6.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.6.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.6.rc1/manifests"},{"name":"github45","sha":"730e6a273c0f95a39ea9354a733fc6ec62cf11db","kind":"commit","published_at":"2014-05-16T05:06:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github45","html_url":"https://github.com/rails/rails/releases/tag/github45","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github45","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github45","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github45/manifests"},{"name":"github44","sha":"7403667b890c3c7a98041ef48a13b46f3c919a89","kind":"commit","published_at":"2014-05-09T14:52:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github44","html_url":"https://github.com/rails/rails/releases/tag/github44","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github44","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github44","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github44/manifests"},{"name":"v4.1.1","sha":"254e8e2c97b5df1dafd54cf8f305f7bad05f4a63","kind":"tag","published_at":"2014-05-06T16:17:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.1/manifests"},{"name":"v3.2.18","sha":"50d6b4549d56ac3a82f2096bd479a7b2305b0bf3","kind":"commit","published_at":"2014-05-06T16:03:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.18","html_url":"https://github.com/rails/rails/releases/tag/v3.2.18","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.18","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.18/manifests"},{"name":"v4.0.5","sha":"15ac2f0b6b2702f180707f480eb966a4e3b96e25","kind":"commit","published_at":"2014-05-06T14:32:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.5","html_url":"https://github.com/rails/rails/releases/tag/v4.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.5/manifests"},{"name":"v4.1.0","sha":"4e168015cef61207981d2427d4dbb6cf15f71182","kind":"tag","published_at":"2014-04-08T19:19:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.0","html_url":"https://github.com/rails/rails/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0/manifests"},{"name":"github41","sha":"a141d9de0dcb6eb088e6e04dda238864754f29dc","kind":"commit","published_at":"2014-03-27T12:55:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github41","html_url":"https://github.com/rails/rails/releases/tag/github41","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github41","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github41","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github41/manifests"},{"name":"v4.1.0.rc2","sha":"6b6f8b566ef3245f5b25d03c61b2af0a1f55301e","kind":"tag","published_at":"2014-03-25T20:10:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.rc2/manifests"},{"name":"v4.0.4","sha":"2abe4b032d080f7177c6f2e34c9124c468e8a293","kind":"commit","published_at":"2014-03-14T17:35:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.4","html_url":"https://github.com/rails/rails/releases/tag/v4.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.4/manifests"},{"name":"v4.0.4.rc1","sha":"26bfdf9f300be2ada831a34b8eb71f55a9a5122f","kind":"commit","published_at":"2014-03-11T17:28:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.4.rc1/manifests"},{"name":"github40","sha":"4fdaf21b280a4b4be51b35b9db9bbaeb6cceb251","kind":"commit","published_at":"2014-02-18T21:28:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github40","html_url":"https://github.com/rails/rails/releases/tag/github40","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github40","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github40","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github40/manifests"},{"name":"v4.1.0.rc1","sha":"78ba185fb91d7066ae5c396ca97034c13054236c","kind":"tag","published_at":"2014-02-18T20:52:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.rc1/manifests"},{"name":"v4.1.0.beta2","sha":"8b20c72dd80e2faf531f308d430a145a253aeac3","kind":"tag","published_at":"2014-02-18T18:45:39.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.0.beta2","html_url":"https://github.com/rails/rails/releases/tag/v4.1.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.0.beta2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.beta2/manifests"},{"name":"v4.0.3","sha":"1f6113c6a9f1f2f8e362b0e7702afac5d8cf98db","kind":"tag","published_at":"2014-02-18T18:38:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.3","html_url":"https://github.com/rails/rails/releases/tag/v4.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.3/manifests"},{"name":"v3.2.17","sha":"666e9f65bdfeb6cc5aa80b6254608adc3d7845ce","kind":"tag","published_at":"2014-02-18T18:17:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.17","html_url":"https://github.com/rails/rails/releases/tag/v3.2.17","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.17","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.17/manifests"},{"name":"github39","sha":"d0e554d231ad3a2671bd815da1f38d5a2e924d8f","kind":"tag","published_at":"2014-02-14T05:12:27.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github39","html_url":"https://github.com/rails/rails/releases/tag/github39","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github39","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github39","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github39/manifests"},{"name":"github37","sha":"3d7281835686053d5654344f6e5740b606bac588","kind":"commit","published_at":"2014-01-21T02:05:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github37","html_url":"https://github.com/rails/rails/releases/tag/github37","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github37","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github37","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github37/manifests"},{"name":"github35","sha":"3766b1b377c39204eca2101eaf1ec607c6c0844e","kind":"commit","published_at":"2014-01-13T21:58:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github35","html_url":"https://github.com/rails/rails/releases/tag/github35","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github35","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github35","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github35/manifests"},{"name":"github34","sha":"f63b0340ff63fcda44876472b9f883614c33749e","kind":"commit","published_at":"2014-01-09T05:04:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github34","html_url":"https://github.com/rails/rails/releases/tag/github34","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github34","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github34","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github34/manifests"},{"name":"github33","sha":"cedf026a1462764b732a481e3b149148dcc3081c","kind":"commit","published_at":"2013-12-30T04:45:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github33","html_url":"https://github.com/rails/rails/releases/tag/github33","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github33","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github33","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github33/manifests"},{"name":"v4.1.0.beta1","sha":"f706d5f945c5751072bb90d080aff154e6858435","kind":"commit","published_at":"2013-12-18T00:10:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.1.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v4.1.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.1.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.1.0.beta1/manifests"},{"name":"v4.0.2","sha":"98d06c6bd4eefeeb342d05116fccefa11875cb9b","kind":"tag","published_at":"2013-12-03T01:10:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.2","html_url":"https://github.com/rails/rails/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.2/manifests"},{"name":"v3.2.16","sha":"64226302d82493d9bf67aa9e4fa52b4e0269ee3d","kind":"tag","published_at":"2013-12-03T00:25:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.16","html_url":"https://github.com/rails/rails/releases/tag/v3.2.16","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.16","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.16/manifests"},{"name":"github31","sha":"c0124ba8f356b1a03c7d47fd249be374b6b49b19","kind":"commit","published_at":"2013-12-02T09:43:27.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github31","html_url":"https://github.com/rails/rails/releases/tag/github31","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github31","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github31","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github31/manifests"},{"name":"v4.0.1","sha":"5505c1d700f17e2009e1189a7aa6dafafe7062a4","kind":"commit","published_at":"2013-11-01T18:01:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1/manifests"},{"name":"v4.0.1.rc4","sha":"9466dad7468f106bad6f8e2a0b468fb3ab113dcb","kind":"tag","published_at":"2013-10-30T19:30:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.1.rc4","html_url":"https://github.com/rails/rails/releases/tag/v4.0.1.rc4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.1.rc4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc4/manifests"},{"name":"github30","sha":"24e5712294c0bbdea776556cb9809e5e7aae8033","kind":"commit","published_at":"2013-10-30T03:32:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github30","html_url":"https://github.com/rails/rails/releases/tag/github30","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github30","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github30","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github30/manifests"},{"name":"github29","sha":"3b7754c9505e55d0332f28354b080511d0617d11","kind":"commit","published_at":"2013-10-29T19:10:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github29","html_url":"https://github.com/rails/rails/releases/tag/github29","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github29","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github29","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github29/manifests"},{"name":"github28","sha":"76884dd7f79f489c1996462d288f02e95774d8c5","kind":"tag","published_at":"2013-10-25T18:52:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github28","html_url":"https://github.com/rails/rails/releases/tag/github28","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github28","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github28","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github28/manifests"},{"name":"github27","sha":"00521f51185eebb960f75e81a86cbb4238043f19","kind":"tag","published_at":"2013-10-24T18:40:05.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github27","html_url":"https://github.com/rails/rails/releases/tag/github27","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github27","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github27/manifests"},{"name":"v4.0.1.rc3","sha":"b91f81c45bce0ecde0901d1a595051b8552a93fa","kind":"commit","published_at":"2013-10-23T21:38:54.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.1.rc3","html_url":"https://github.com/rails/rails/releases/tag/v4.0.1.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.1.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc3/manifests"},{"name":"v4.0.1.rc2","sha":"3449a204014c2c4db2238559a75586400766adee","kind":"tag","published_at":"2013-10-21T21:52:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.1.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.0.1.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.1.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc2/manifests"},{"name":"v4.0.1.rc1","sha":"3f2bc99024d25c73f5de66a36d3f897c484705b8","kind":"tag","published_at":"2013-10-17T16:42:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.1.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.1.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.1.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.1.rc1/manifests"},{"name":"v3.2.15","sha":"538f8ba0c16bb6c57b5b79320fc1a99afd14b0e2","kind":"tag","published_at":"2013-10-16T17:03:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.15","html_url":"https://github.com/rails/rails/releases/tag/v3.2.15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15/manifests"},{"name":"github26","sha":"b2c42ec3412a31ed10cf8b794239de6245d1a5d6","kind":"tag","published_at":"2013-10-15T20:30:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github26","html_url":"https://github.com/rails/rails/releases/tag/github26","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github26","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github26/manifests"},{"name":"v3.2.15.rc3","sha":"e3abd78ee58ee8564a69c989e963ae480b8acf9f","kind":"tag","published_at":"2013-10-11T21:16:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.15.rc3","html_url":"https://github.com/rails/rails/releases/tag/v3.2.15.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.15.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15.rc3/manifests"},{"name":"v3.2.15.rc2","sha":"5ede19b7725b9f83a2231554b6d583117fbbb4c4","kind":"tag","published_at":"2013-10-04T20:47:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.15.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.15.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.15.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15.rc2/manifests"},{"name":"v3.2.15.rc1","sha":"5e277c82085f6258b6aa4a19a90c6ea46686af84","kind":"commit","published_at":"2013-10-03T18:52:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.15.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.15.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.15.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.15.rc1/manifests"},{"name":"github25","sha":"685cb901fcc86491a3424a7f2e27f61ba4e135c7","kind":"tag","published_at":"2013-08-27T10:57:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github25","html_url":"https://github.com/rails/rails/releases/tag/github25","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github25","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github25/manifests"},{"name":"github24","sha":"b2969e6b48e4dddff3ea9e6814383f73596c75c4","kind":"tag","published_at":"2013-08-09T04:03:22.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/github24","html_url":"https://github.com/rails/rails/releases/tag/github24","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@github24","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/github24/manifests"},{"name":"v3.2.14","sha":"2fcd13eff251ca9e1ff5cf6a13f72c18087daf60","kind":"tag","published_at":"2013-07-22T16:40:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.14","html_url":"https://github.com/rails/rails/releases/tag/v3.2.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.14/manifests"},{"name":"v3.2.14.rc2","sha":"a96df04aac00fb2b7d91978c24741100230a50d4","kind":"tag","published_at":"2013-07-16T16:10:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.14.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.14.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.14.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.14.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.14.rc2/manifests"},{"name":"v3.2.14.rc1","sha":"facfc24f256d8367f33a62e3bbea6c0f8c698c1f","kind":"tag","published_at":"2013-07-13T00:23:43.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.14.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.14.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.14.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.14.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.14.rc1/manifests"},{"name":"v4.0.0","sha":"375d9a0a7fb329b0fbbd75a13e93e53a00520587","kind":"commit","published_at":"2013-06-25T14:28:29.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.0","html_url":"https://github.com/rails/rails/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0/manifests"},{"name":"v4.0.0.rc2","sha":"7b0d3a550328f64f23f38a27864419d72b941f2f","kind":"commit","published_at":"2013-06-11T20:17:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v4.0.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0.rc2/manifests"},{"name":"v4.0.0.rc1","sha":"1ec64297f9347986a11ce38af2cc3434d99c66c2","kind":"commit","published_at":"2013-04-29T15:29:18.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0.rc1/manifests"},{"name":"v2.3.18","sha":"3773c2fc1f63daf3a6f92ef49720e801988ac990","kind":"tag","published_at":"2013-03-18T17:01:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.18","html_url":"https://github.com/rails/rails/releases/tag/v2.3.18","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.18","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.18/manifests"},{"name":"v3.2.13","sha":"a4b55827721a5967299f3c1531afb3d6d81e4ac0","kind":"tag","published_at":"2013-03-18T16:23:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.13","html_url":"https://github.com/rails/rails/releases/tag/v3.2.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.13/manifests"},{"name":"v3.1.12","sha":"0c510c79cb676cdb9d6a65a1fecb8d71edd123b9","kind":"tag","published_at":"2013-03-18T16:18:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.12","html_url":"https://github.com/rails/rails/releases/tag/v3.1.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.12/manifests"},{"name":"v3.2.13.rc2","sha":"ccf256d8dcc68d975bbf00780c3b4096f47e29d3","kind":"tag","published_at":"2013-03-06T23:05:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.13.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.13.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.13.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.13.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.13.rc2/manifests"},{"name":"v3.2.13.rc1","sha":"5ca59b02d1cc80f3463eef062ced079eb1b3998c","kind":"commit","published_at":"2013-02-27T20:19:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.13.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.13.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.13.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.13.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.13.rc1/manifests"},{"name":"v4.0.0.beta1","sha":"202041e762a98cb433c3a24a0b03308d4e05a99d","kind":"commit","published_at":"2013-02-25T23:07:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v4.0.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v4.0.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v4.0.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v4.0.0.beta1/manifests"},{"name":"v2.3.17","sha":"02d553d24cc976136c59b9278bcfbe114f334087","kind":"tag","published_at":"2013-02-11T03:14:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.17","html_url":"https://github.com/rails/rails/releases/tag/v2.3.17","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.17","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.17/manifests"},{"name":"v3.1.11","sha":"415bf3d126bac64c3b256335af45f23d2881f9bf","kind":"tag","published_at":"2013-02-11T03:08:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.11","html_url":"https://github.com/rails/rails/releases/tag/v3.1.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.11/manifests"},{"name":"v3.2.12","sha":"1dccd44a5c74f20b0406ecc8d39373226f73af35","kind":"tag","published_at":"2013-02-11T03:05:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.12","html_url":"https://github.com/rails/rails/releases/tag/v3.2.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.12/manifests"},{"name":"v3.0.20","sha":"b875be03b50029e94244945f072a6cbbff2e1c24","kind":"tag","published_at":"2013-01-28T20:47:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.20","html_url":"https://github.com/rails/rails/releases/tag/v3.0.20","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.20","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.20/manifests"},{"name":"v2.3.16","sha":"1169552479d6800e6729fb599dcb4a987ef13a6a","kind":"tag","published_at":"2013-01-28T20:43:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.16","html_url":"https://github.com/rails/rails/releases/tag/v2.3.16","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.16","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.16/manifests"},{"name":"v2.3.15","sha":"709af0523337e4c87760cbe118914ed0ab28d326","kind":"tag","published_at":"2013-01-08T19:27:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.15","html_url":"https://github.com/rails/rails/releases/tag/v2.3.15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.15/manifests"},{"name":"v3.0.19","sha":"7909e7f10c82be05d989340ad49e9d9c08fb0ead","kind":"tag","published_at":"2013-01-08T19:25:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.19","html_url":"https://github.com/rails/rails/releases/tag/v3.0.19","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.19","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.19/manifests"},{"name":"v3.1.10","sha":"a7dd0bb151d925a7e3cd0aec8f61746729949985","kind":"tag","published_at":"2013-01-08T19:24:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.10","html_url":"https://github.com/rails/rails/releases/tag/v3.1.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.10/manifests"},{"name":"v3.2.11","sha":"746dbd89faf8197e6d6f35f6e428a024923116a2","kind":"tag","published_at":"2013-01-08T19:24:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.11","html_url":"https://github.com/rails/rails/releases/tag/v3.2.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.11/manifests"},{"name":"v3.0.18","sha":"fb06fe48ef45de09691718806abf088ab190a185","kind":"tag","published_at":"2012-12-23T22:31:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.18","html_url":"https://github.com/rails/rails/releases/tag/v3.0.18","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.18","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.18/manifests"},{"name":"v3.1.9","sha":"f1e977cd14b13e316ad8195f49d41608a54891c6","kind":"tag","published_at":"2012-12-23T21:39:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.9","html_url":"https://github.com/rails/rails/releases/tag/v3.1.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.9/manifests"},{"name":"v3.2.10","sha":"8ba3df046f977dddd4bc46248db2a1355bc0ed1e","kind":"tag","published_at":"2012-12-23T21:36:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.10","html_url":"https://github.com/rails/rails/releases/tag/v3.2.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.10/manifests"},{"name":"v3.2.9","sha":"b33cf74a4917c6ac5229ba8d6296d33d0b3437bd","kind":"tag","published_at":"2012-11-12T15:19:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.9","html_url":"https://github.com/rails/rails/releases/tag/v3.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9/manifests"},{"name":"v3.2.9.rc3","sha":"db1d5f40714a47c58c13ff7d9643e8a0dec6bef8","kind":"tag","published_at":"2012-11-09T17:51:29.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.9.rc3","html_url":"https://github.com/rails/rails/releases/tag/v3.2.9.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.9.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9.rc3/manifests"},{"name":"v3.2.9.rc2","sha":"de3dff317010df12d15225f2bca4a7e914eb596c","kind":"tag","published_at":"2012-11-01T17:38:23.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.9.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.9.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.9.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9.rc2/manifests"},{"name":"v3.2.9.rc1","sha":"fdfb3990cde29c48554551d1309b06c8ef584f32","kind":"tag","published_at":"2012-10-29T16:38:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.9.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.9.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.9.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.9.rc1/manifests"},{"name":"v3.0.17","sha":"77977f34a5a4ea899f59e31ad869b582285fa5c1","kind":"tag","published_at":"2012-08-09T21:10:34.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.17","html_url":"https://github.com/rails/rails/releases/tag/v3.0.17","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.17","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.17/manifests"},{"name":"v3.1.8","sha":"38bf9cf36864b5656816b1aadf324624dbcb60b9","kind":"tag","published_at":"2012-08-09T21:10:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.8","html_url":"https://github.com/rails/rails/releases/tag/v3.1.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.8/manifests"},{"name":"v3.2.8","sha":"64146cf7babe35fd962576b699fa0deb4cfe0d70","kind":"tag","published_at":"2012-08-09T21:09:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.8","html_url":"https://github.com/rails/rails/releases/tag/v3.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.8/manifests"},{"name":"v3.2.8.rc2","sha":"65b5e35e898ac09a50b61c671d98a3cf92453003","kind":"tag","published_at":"2012-08-03T14:02:12.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.8.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.8.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.8.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.8.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.8.rc2/manifests"},{"name":"v3.2.8.rc1","sha":"fcccbacec1d25188619f597bbb75505c79084bc3","kind":"tag","published_at":"2012-08-01T20:51:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.8.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.8.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.8.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.8.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.8.rc1/manifests"},{"name":"v3.0.16","sha":"3166606dcbbbea5d6cc07bda233273e1dfa8821d","kind":"tag","published_at":"2012-07-26T21:59:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.16","html_url":"https://github.com/rails/rails/releases/tag/v3.0.16","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.16","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.16/manifests"},{"name":"v3.1.7","sha":"d314a48a40271552837fb795d9cde2fb516d2f78","kind":"tag","published_at":"2012-07-26T21:58:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.7","html_url":"https://github.com/rails/rails/releases/tag/v3.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.7/manifests"},{"name":"v3.2.7","sha":"d1b9cf2d48b4e58da2da563107dd2783e326e287","kind":"tag","published_at":"2012-07-26T21:49:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.7","html_url":"https://github.com/rails/rails/releases/tag/v3.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.7/manifests"},{"name":"v3.2.7.rc1","sha":"753c546df4c8d639a8402552bdd5c9d077610f6c","kind":"tag","published_at":"2012-07-23T21:44:33.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.7.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.7.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.7.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.7.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.7.rc1/manifests"},{"name":"2.3.14.github2","sha":"a6eb61b7e4138c999099a7e6ed7b3d2f0a227004","kind":"commit","published_at":"2012-06-13T06:14:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/2.3.14.github2","html_url":"https://github.com/rails/rails/releases/tag/2.3.14.github2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@2.3.14.github2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/2.3.14.github2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/2.3.14.github2/manifests"},{"name":"v3.0.15","sha":"def75432c9ead5e717fcd7797973b90fa22b3487","kind":"tag","published_at":"2012-06-13T03:05:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.15","html_url":"https://github.com/rails/rails/releases/tag/v3.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.15/manifests"},{"name":"v3.0.14","sha":"4be9dbff206119798e44a2d9973c60bc02685034","kind":"tag","published_at":"2012-06-12T21:15:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.14","html_url":"https://github.com/rails/rails/releases/tag/v3.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.14/manifests"},{"name":"v3.1.6","sha":"63dce16202fb7e1517e109266c74db95f95b4cb1","kind":"tag","published_at":"2012-06-12T21:14:12.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.6","html_url":"https://github.com/rails/rails/releases/tag/v3.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.6/manifests"},{"name":"v3.2.6","sha":"8381d398cedf3e95fb073b8110d80f636cff449c","kind":"tag","published_at":"2012-06-12T21:13:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.6","html_url":"https://github.com/rails/rails/releases/tag/v3.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.6/manifests"},{"name":"v3.2.5","sha":"b57fa0bf690b299ba4d8a0051bf06b9cecd3975a","kind":"tag","published_at":"2012-06-01T03:38:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.5","html_url":"https://github.com/rails/rails/releases/tag/v3.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.5/manifests"},{"name":"v3.0.13","sha":"7102fe8d44a9efafac0e74c1aa479d770003f458","kind":"tag","published_at":"2012-05-31T17:55:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.13","html_url":"https://github.com/rails/rails/releases/tag/v3.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.13/manifests"},{"name":"v3.1.5","sha":"aa18c0cac01f63fa20095581118548c68b17a3f3","kind":"tag","published_at":"2012-05-31T17:42:43.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.5","html_url":"https://github.com/rails/rails/releases/tag/v3.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.5/manifests"},{"name":"v3.2.4","sha":"febd65223e2b3a40755d23a734f6a77e04b97c88","kind":"tag","published_at":"2012-05-31T17:27:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.4","html_url":"https://github.com/rails/rails/releases/tag/v3.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.4/manifests"},{"name":"v3.2.4.rc1","sha":"fe4dfdd64450662d882b47bf519d885edee453df","kind":"tag","published_at":"2012-05-28T19:32:12.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.4.rc1/manifests"},{"name":"v3.1.5.rc1","sha":"bd8ee8c91293b34c0c3bea1bc541cd1ada7f5b12","kind":"tag","published_at":"2012-05-28T18:55:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.5.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.1.5.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.5.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.5.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.5.rc1/manifests"},{"name":"v3.0.13.rc1","sha":"88e7f5176c3b449301636d8acdb2726f854d4644","kind":"tag","published_at":"2012-05-28T18:53:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.13.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.13.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.13.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.13.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.13.rc1/manifests"},{"name":"v3.2.3","sha":"45d6cd94b3ef2ec77166def41f29188445b35608","kind":"tag","published_at":"2012-03-30T22:22:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.3","html_url":"https://github.com/rails/rails/releases/tag/v3.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.3/manifests"},{"name":"v3.2.3.rc2","sha":"5284e650be321273a2bb68bf4baa8adeb6bc586b","kind":"tag","published_at":"2012-03-29T16:13:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.3.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.3.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.3.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.3.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.3.rc2/manifests"},{"name":"v3.2.3.rc1","sha":"5f3726091851326d4976624db374a20d356b1630","kind":"tag","published_at":"2012-03-27T17:07:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.3.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.3.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.3.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.3.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.3.rc1/manifests"},{"name":"v3.0.12","sha":"9d6377ed731bafbe9d20ac7e950c1c135ab02f9f","kind":"tag","published_at":"2012-03-01T17:22:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.12","html_url":"https://github.com/rails/rails/releases/tag/v3.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.12/manifests"},{"name":"v3.1.4","sha":"1aabea698b4518f37263af15818a2c9fc7565521","kind":"tag","published_at":"2012-03-01T17:20:54.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.4","html_url":"https://github.com/rails/rails/releases/tag/v3.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.4/manifests"},{"name":"v3.2.2","sha":"01b470f526922ad3fc5562a237d11d45347befa9","kind":"tag","published_at":"2012-03-01T17:17:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.2/manifests"},{"name":"v3.0.12.rc1","sha":"2935435d7058cf00da3989b0e60a28b1472509bd","kind":"tag","published_at":"2012-02-22T21:31:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.12.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.12.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.12.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.12.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.12.rc1/manifests"},{"name":"v3.1.4.rc1","sha":"8c677e921a1116085b00b522cea6204587c09754","kind":"tag","published_at":"2012-02-22T20:06:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.1.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.4.rc1/manifests"},{"name":"v3.2.2.rc1","sha":"4bcd437f760cfaf310fece0fe36abe55bccba42b","kind":"tag","published_at":"2012-02-22T20:03:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.2.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.2.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.2.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.2.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.2.rc1/manifests"},{"name":"v3.2.1","sha":"67b8fbca921ba7e3e1fc02fe30a20963a67017e5","kind":"tag","published_at":"2012-01-26T22:58:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.1/manifests"},{"name":"v3.2.0","sha":"f36dcaf488b4357a52f43e3912628428956d351f","kind":"commit","published_at":"2012-01-20T16:44:32.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.0","html_url":"https://github.com/rails/rails/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.0/manifests"},{"name":"v3.2.0.rc2","sha":"d268ef2f6599cd58cc27a8c9f0b9b6649f62e6a2","kind":"tag","published_at":"2012-01-04T21:00:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.2.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.0.rc2/manifests"},{"name":"v3.2.0.rc1","sha":"9d6e52b55ec67d0573a0bb1900b13f38e18f7eba","kind":"commit","published_at":"2011-12-20T00:34:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.2.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.2.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.2.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.2.0.rc1/manifests"},{"name":"v3.1.3","sha":"e9474c89d9583d50be485bef8fabb31a75b242bb","kind":"commit","published_at":"2011-11-20T22:48:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.3","html_url":"https://github.com/rails/rails/releases/tag/v3.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.3/manifests"},{"name":"v3.1.2","sha":"0e6b118313b5603482df071e30434ddab758f8a1","kind":"commit","published_at":"2011-11-18T01:27:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.2","html_url":"https://github.com/rails/rails/releases/tag/v3.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.2/manifests"},{"name":"v3.0.11","sha":"66a4beb0c9764238e1e8bed83aca88a397039bde","kind":"commit","published_at":"2011-11-18T01:19:17.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.11","html_url":"https://github.com/rails/rails/releases/tag/v3.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.11/manifests"},{"name":"2.3.14.github","sha":"fe11782158c82bf60f783cd5799449b9744ca3f0","kind":"commit","published_at":"2011-11-17T20:57:09.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/2.3.14.github","html_url":"https://github.com/rails/rails/releases/tag/2.3.14.github","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@2.3.14.github","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/2.3.14.github","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/2.3.14.github/manifests"},{"name":"v3.1.2.rc2","sha":"e29f27ad76b6e031f21bc258a6ff713ec9a16365","kind":"commit","published_at":"2011-11-14T15:44:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.2.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.1.2.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.2.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.2.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.2.rc2/manifests"},{"name":"v3.1.2.rc1","sha":"68ed8eae304b64c5049badda6a2cf854b5949831","kind":"commit","published_at":"2011-11-14T14:12:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.2.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.1.2.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.2.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.2.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.2.rc1/manifests"},{"name":"v3.1.1","sha":"ba708126d85a020f8984db1a12261bcdba47d70f","kind":"tag","published_at":"2011-10-07T15:14:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.1","html_url":"https://github.com/rails/rails/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1/manifests"},{"name":"v3.1.1.rc3","sha":"57a01f337eb4da7941ec35e5541fa456b060601a","kind":"tag","published_at":"2011-10-06T02:27:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.1.rc3","html_url":"https://github.com/rails/rails/releases/tag/v3.1.1.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.1.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1.rc3/manifests"},{"name":"v3.1.1.rc2","sha":"aead5720d75ef3e2babb8d115a8587b2736a5b3b","kind":"tag","published_at":"2011-09-29T22:13:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.1.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.1.1.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.1.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1.rc2/manifests"},{"name":"v3.1.1.rc1","sha":"3f9665be11f9938baa9f617f3391cc0d7e3ff10b","kind":"tag","published_at":"2011-09-15T00:17:28.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.1.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.1.1.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.1.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.1.rc1/manifests"},{"name":"v3.1.0","sha":"505e84599aff6abf719484636b0515e1ce2e2220","kind":"tag","published_at":"2011-08-31T02:10:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0/manifests"},{"name":"v3.1.0.rc8","sha":"c4ce550f3e28a1dbc4716afc9957f2ec3c426782","kind":"tag","published_at":"2011-08-29T03:23:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc8","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc8/manifests"},{"name":"v3.1.0.rc7","sha":"e4fc8e22c17e222b3057d2b053ba5586a7260db0","kind":"tag","published_at":"2011-08-28T23:55:58.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc7","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc7/manifests"},{"name":"list","sha":"155f734155fd0772d19f4201f244dccd8cdbd126","kind":"commit","published_at":"2011-08-19T20:12:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/list","html_url":"https://github.com/rails/rails/releases/tag/list","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@list","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/list","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/list/manifests"},{"name":"v3.1.0.rc6","sha":"633a5693a7c304ec242488dc5aa11c8956b3b294","kind":"tag","published_at":"2011-08-16T22:30:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc6","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc6/manifests"},{"name":"v3.0.10","sha":"4f15f392601d4504fab850f3bf659c43f0cb51ec","kind":"tag","published_at":"2011-08-16T22:10:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.10","html_url":"https://github.com/rails/rails/releases/tag/v3.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.10/manifests"},{"name":"v2.3.14","sha":"e0774e47302a907319ed974ccf59b8b54d32bbde","kind":"tag","published_at":"2011-08-16T21:59:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.14","html_url":"https://github.com/rails/rails/releases/tag/v2.3.14","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.14","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.14/manifests"},{"name":"v2.3.13","sha":"dea5a10f716b84a49e3d8fa44efbd3bf1ff1bfda","kind":"tag","published_at":"2011-08-16T21:50:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.13","html_url":"https://github.com/rails/rails/releases/tag/v2.3.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.13/manifests"},{"name":"v3.0.10.rc1","sha":"521c9aa6a85fdb4c6d43d2aeb1af7b4cae2a20f5","kind":"tag","published_at":"2011-08-05T00:10:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.10.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.10.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.10.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.10.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.10.rc1/manifests"},{"name":"v3.1.0.rc5","sha":"a5188333aaf219e4000614f49748f459b79b6ef9","kind":"tag","published_at":"2011-07-25T23:06:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc5","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc5/manifests"},{"name":"v3.0.9","sha":"15e2b5887f2185e01b8d92646a7f441b8c1c549e","kind":"commit","published_at":"2011-06-16T10:03:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.9","html_url":"https://github.com/rails/rails/releases/tag/v3.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9/manifests"},{"name":"v3.0.9.rc5","sha":"6824c5d1d303f5bbc5c5d390390204fcc0cd6ced","kind":"commit","published_at":"2011-06-12T21:28:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.9.rc5","html_url":"https://github.com/rails/rails/releases/tag/v3.0.9.rc5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.9.rc5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc5/manifests"},{"name":"v3.0.9.rc4","sha":"f283194234669d2034653445ca018582dc382c0e","kind":"commit","published_at":"2011-06-12T21:21:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.9.rc4","html_url":"https://github.com/rails/rails/releases/tag/v3.0.9.rc4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.9.rc4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc4/manifests"},{"name":"v3.1.0.rc4","sha":"279781f8964c95f842153c98dc245b06f1b1f76e","kind":"commit","published_at":"2011-06-09T22:53:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc4","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc4/manifests"},{"name":"v3.0.9.rc3","sha":"66ec7e84c9710aea7397e9ad92e87063b857c9d5","kind":"commit","published_at":"2011-06-09T22:48:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.9.rc3","html_url":"https://github.com/rails/rails/releases/tag/v3.0.9.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.9.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc3/manifests"},{"name":"v3.0.9.rc2","sha":"0e1ecb2e15ab8eaf5641e2ca9eb1c13bf5b304a0","kind":"commit","published_at":"2011-06-09T22:36:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.9.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.9.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.9.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc2/manifests"},{"name":"v3.1.0.rc3","sha":"aefd703443807598552f3ea2c81e4e9cb15349df","kind":"tag","published_at":"2011-06-08T21:34:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc3","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc3/manifests"},{"name":"v3.0.9.rc1","sha":"0c1608c4edccbf2a1b6b53d8f1ab7ccacc8cbc65","kind":"tag","published_at":"2011-06-08T21:18:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.9.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.9.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.9.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.9.rc1/manifests"},{"name":"v2.3.12","sha":"a2a34133d8347d83c015b1889a774c718644e4d6","kind":"tag","published_at":"2011-06-07T23:55:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.12","html_url":"https://github.com/rails/rails/releases/tag/v2.3.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.12/manifests"},{"name":"v3.0.8","sha":"b341e45d8e75d49a9f599881eea952c2a41af032","kind":"tag","published_at":"2011-06-07T23:52:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.8","html_url":"https://github.com/rails/rails/releases/tag/v3.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8/manifests"},{"name":"v3.1.0.rc2","sha":"d846f4baa5da299d51c72f1bdd098cf982279628","kind":"tag","published_at":"2011-06-07T23:48:30.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc2/manifests"},{"name":"v3.0.8.rc4","sha":"ce23c6e47f184616c8cc9b779c1670e1417adfd0","kind":"tag","published_at":"2011-05-31T00:09:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.8.rc4","html_url":"https://github.com/rails/rails/releases/tag/v3.0.8.rc4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.8.rc4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc4/manifests"},{"name":"v3.0.8.rc3","sha":"f4073d530f76ebd5371017032874e5865ebd8ecb","kind":"tag","published_at":"2011-05-30T19:54:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.8.rc3","html_url":"https://github.com/rails/rails/releases/tag/v3.0.8.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.8.rc3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc3/manifests"},{"name":"v3.0.8.rc2","sha":"d75652540e8bb9fd565e1d251e6fcd9c3f2e8516","kind":"tag","published_at":"2011-05-27T16:30:00.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.8.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.8.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.8.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc2/manifests"},{"name":"v3.0.8.rc1","sha":"8b0806e1b0ea2dbe31ab25cfba298425fd0369f4","kind":"tag","published_at":"2011-05-26T00:08:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.8.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.8.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.8.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.8.rc1/manifests"},{"name":"v3.1.0.rc1","sha":"82857adc56efd16d22821971fff4c5e24a3c5b55","kind":"commit","published_at":"2011-05-22T01:56:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.rc1/manifests"},{"name":"v3.1.0.beta1","sha":"169ae75e091392e3852d0dfb56fadacef4b7a20b","kind":"commit","published_at":"2011-05-05T01:21:05.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.1.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v3.1.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.1.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.1.0.beta1/manifests"},{"name":"v3.0.7","sha":"2c3260147f90e35a6a5e3ce1b520b4de701e701e","kind":"tag","published_at":"2011-04-18T21:03:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.7","html_url":"https://github.com/rails/rails/releases/tag/v3.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.7/manifests"},{"name":"v3.0.7.rc2","sha":"f96ad0d582fd275c6f069e31fe716406a0ba924d","kind":"tag","published_at":"2011-04-15T17:23:20.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.7.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.7.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.7.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.7.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.7.rc2/manifests"},{"name":"v3.0.7.rc1","sha":"1787447ada8cf224bf5552c6ae8a3db053fa5839","kind":"tag","published_at":"2011-04-14T21:48:42.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.7.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.7.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.7.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.7.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.7.rc1/manifests"},{"name":"v3.0.6","sha":"38df020c95beca7e12f0188cb7e18f3c37789e20","kind":"tag","published_at":"2011-04-05T22:58:48.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.6","html_url":"https://github.com/rails/rails/releases/tag/v3.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.6/manifests"},{"name":"v3.0.6.rc2","sha":"b13be616a11ffa2c489e1b3ee4ae54e234990fcf","kind":"tag","published_at":"2011-03-31T05:26:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.6.rc2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.6.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.6.rc2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.6.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.6.rc2/manifests"},{"name":"v3.0.6.rc1","sha":"ba117b2b43a00c282bb4905fb003dd169a5312df","kind":"tag","published_at":"2011-03-29T21:04:42.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.6.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.6.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.6.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.6.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.6.rc1/manifests"},{"name":"v3.0.5","sha":"ecc6bb597fba7512e4eb34566fb2e8eaae9e39b8","kind":"tag","published_at":"2011-02-27T02:28:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.5","html_url":"https://github.com/rails/rails/releases/tag/v3.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.5/manifests"},{"name":"v3.0.5.rc1","sha":"ef31b87d8297d0473b73a9c2cdc5b3a7395fae06","kind":"tag","published_at":"2011-02-23T19:13:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.5.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.5.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.5.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.5.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.5.rc1/manifests"},{"name":"v3.0.4","sha":"1081ea66a3d864f310a1a55f22229af4e10436a7","kind":"tag","published_at":"2011-02-08T21:24:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.4","html_url":"https://github.com/rails/rails/releases/tag/v3.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.4/manifests"},{"name":"v2.3.11","sha":"b0c3d451a242b53c9992cafa9108d0df52b4f2f0","kind":"tag","published_at":"2011-02-08T21:23:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.11","html_url":"https://github.com/rails/rails/releases/tag/v2.3.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.11/manifests"},{"name":"v3.0.4.rc1","sha":"0cbf9b2946c02a5057958dbd47bc164be16cbab2","kind":"tag","published_at":"2011-01-30T22:56:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.4.rc1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.4.rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.4.rc1/manifests"},{"name":"v3.0.3","sha":"0aca27d407a339683665dcbb2199a1337972bb5e","kind":"commit","published_at":"2010-11-16T16:26:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.3","html_url":"https://github.com/rails/rails/releases/tag/v3.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.3/manifests"},{"name":"v3.0.2","sha":"186e3c71f95316b94e728eb62b519d074d27cea3","kind":"commit","published_at":"2010-11-15T19:23:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"bac6ba99b11515374d3251ee4a1d1f3a0002713c","kind":"tag","published_at":"2010-10-14T20:57:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.1/manifests"},{"name":"v2.3.10","sha":"f5ed5c317e2280e41a9185c3000e7fbd1f7b3176","kind":"tag","published_at":"2010-10-14T20:06:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.10","html_url":"https://github.com/rails/rails/releases/tag/v2.3.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.10/manifests"},{"name":"v2.3.9","sha":"a61a39ecd44153676cc56257bbe8bbdf9a727cf9","kind":"commit","published_at":"2010-09-04T21:36:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.9","html_url":"https://github.com/rails/rails/releases/tag/v2.3.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.9/manifests"},{"name":"v2.3.9.pre","sha":"b2c91983dcb5e2a21ea2c0be28f86ad33b48f660","kind":"commit","published_at":"2010-08-30T03:19:05.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.9.pre","html_url":"https://github.com/rails/rails/releases/tag/v2.3.9.pre","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.9.pre","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.9.pre","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.9.pre/manifests"},{"name":"v3.0.0","sha":"9891ca89c69732a21743f0349f2995956a7802e7","kind":"commit","published_at":"2010-08-29T22:00:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0/manifests"},{"name":"v3.0.0_RC2","sha":"822fa17c6c0f159eeff01c8fb251e13666f50357","kind":"commit","published_at":"2010-08-24T02:40:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0_RC2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0_RC2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0_RC2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0_RC2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0_RC2/manifests"},{"name":"v3.0.0_RC","sha":"b6f99325613baf0534c10677da9c82ac27b628c0","kind":"commit","published_at":"2010-07-26T21:40:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0_RC","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0_RC","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0_RC","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0_RC","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0_RC/manifests"},{"name":"v3.0.0.beta4","sha":"df40dbe6f13c6799e972b20dcc1fbf11f0a02c61","kind":"commit","published_at":"2010-06-08T22:10:27.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0.beta4","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0.beta4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0.beta4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta4/manifests"},{"name":"v2.3.8","sha":"240f4e944cd90fca138aba8467456043952110cc","kind":"commit","published_at":"2010-05-25T03:53:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.8","html_url":"https://github.com/rails/rails/releases/tag/v2.3.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.8/manifests"},{"name":"v2.3.7","sha":"326188c25efa3721a7e2f68cea3534b3e2850fcf","kind":"commit","published_at":"2010-05-24T07:04:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.7","html_url":"https://github.com/rails/rails/releases/tag/v2.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.7/manifests"},{"name":"v2.3.6","sha":"56bb5504dd1fc7314f1bd7a489ddaff973668be2","kind":"commit","published_at":"2010-05-23T06:53:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.6","html_url":"https://github.com/rails/rails/releases/tag/v2.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.6/manifests"},{"name":"v3.0.0.beta3","sha":"8e9df34fa3fd22719d939ba72f19b3ae9ffcc018","kind":"commit","published_at":"2010-04-13T21:07:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0.beta3","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0.beta3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0.beta3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta3/manifests"},{"name":"v3.0.0.beta.3","sha":"8e9df34fa3fd22719d939ba72f19b3ae9ffcc018","kind":"commit","published_at":"2010-04-13T21:07:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0.beta.3","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0.beta.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0.beta.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta.3/manifests"},{"name":"v3.0.0.beta2","sha":"f0364d87f03d58312bcab1b2f17b5b56b6c72653","kind":"commit","published_at":"2010-04-01T21:20:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0.beta2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0.beta2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta2/manifests"},{"name":"v3.0.0.beta.2","sha":"f0364d87f03d58312bcab1b2f17b5b56b6c72653","kind":"commit","published_at":"2010-04-01T21:20:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0.beta.2","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0.beta.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0.beta.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta.2/manifests"},{"name":"v3.0.0.beta1","sha":"c548e213658386f3a5b00097bc5b30bf3736e6b4","kind":"commit","published_at":"2010-02-05T17:24:12.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v3.0.0.beta1","html_url":"https://github.com/rails/rails/releases/tag/v3.0.0.beta1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v3.0.0.beta1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v3.0.0.beta1/manifests"},{"name":"v2.3.5","sha":"bfe032858077bb2946abe25e95e485ba6da86bd5","kind":"tag","published_at":"2009-11-27T00:26:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.5","html_url":"https://github.com/rails/rails/releases/tag/v2.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.5/manifests"},{"name":"v2.2.3","sha":"a60779f7e69a7045a308844e9464d7d6b9cac94d","kind":"tag","published_at":"2009-09-23T22:13:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.2.3","html_url":"https://github.com/rails/rails/releases/tag/v2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.3/manifests"},{"name":"v2.3.4","sha":"a43ef2436cc6b63af35636127e42495ceb538cee","kind":"tag","published_at":"2009-09-04T00:16:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.4","html_url":"https://github.com/rails/rails/releases/tag/v2.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.4/manifests"},{"name":"v2.3.3.1","sha":"c7bcbb983f84e306e2b43adb698060e060605de9","kind":"tag","published_at":"2009-07-19T05:29:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.3.1","html_url":"https://github.com/rails/rails/releases/tag/v2.3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.3.1/manifests"},{"name":"v2.3.3","sha":"a147becfb86b689ab25e92edcfbb4bcc04108099","kind":"tag","published_at":"2009-07-16T04:25:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.3","html_url":"https://github.com/rails/rails/releases/tag/v2.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.3/manifests"},{"name":"v2.3.2.1","sha":"dc88847e5ce392eed210b97525c14fca55852867","kind":"commit","published_at":"2009-03-17T12:26:34.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.2.1","html_url":"https://github.com/rails/rails/releases/tag/v2.3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.2.1/manifests"},{"name":"v2.3.2","sha":"73fc42cc0b5e94541480032c2941a50edd4080c2","kind":"commit","published_at":"2009-03-16T03:06:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.2","html_url":"https://github.com/rails/rails/releases/tag/v2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.2/manifests"},{"name":"v2.3.1","sha":"b1c989f28dd1d619f0e3e3ca1b894b686e517f2f","kind":"commit","published_at":"2009-03-05T11:22:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.1","html_url":"https://github.com/rails/rails/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"beca1f2e151558ded3d5a4efebd328ab2533edc6","kind":"commit","published_at":"2009-02-02T00:21:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.3.0","html_url":"https://github.com/rails/rails/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.3.0/manifests"},{"name":"v2.2.2","sha":"ff561370739eb809d1d006ea842cd2b1e43f6950","kind":"commit","published_at":"2008-11-21T16:25:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.2.2","html_url":"https://github.com/rails/rails/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.2/manifests"},{"name":"v2.2.1","sha":"44c3b865ac52a7c9a6312982ba0f6c20d7ad41e1","kind":"commit","published_at":"2008-11-14T15:11:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.2.1","html_url":"https://github.com/rails/rails/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"a17fc20eb122d45a017e99e592e5e159025ab26b","kind":"tag","published_at":"2008-10-24T14:42:03.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.2.0","html_url":"https://github.com/rails/rails/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.2.0/manifests"},{"name":"v2.1.2","sha":"15af6b315ee65afbc873889b6ad81b7e6b7e1b35","kind":"commit","published_at":"2008-10-23T16:16:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.1.2","html_url":"https://github.com/rails/rails/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.2/manifests"},{"name":"v2.0.4","sha":"e724e3ede67b4199db8765e00d370e6a7bd401e6","kind":"tag","published_at":"2008-10-20T06:45:15.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.4","html_url":"https://github.com/rails/rails/releases/tag/v2.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.4/manifests"},{"name":"v2.0.5","sha":"c329794e7334f3d355d0a039e23a7145ad40ed35","kind":"tag","published_at":"2008-10-19T20:22:27.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.5","html_url":"https://github.com/rails/rails/releases/tag/v2.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.5/manifests"},{"name":"v2.1.1","sha":"d4eb3c0b7d13d3898c14d6ea7bfbc1853394f4e8","kind":"commit","published_at":"2008-09-04T14:31:40.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.1.1","html_url":"https://github.com/rails/rails/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"71528b1825ce5184b23d09f923cb72f4073ce8ed","kind":"commit","published_at":"2008-06-01T00:22:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.1.0","html_url":"https://github.com/rails/rails/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.0/manifests"},{"name":"v2.0.3","sha":"44d721c193e5bc9d1fd9073ff65a241039467d7a","kind":"tag","published_at":"2008-05-12T00:04:24.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.3","html_url":"https://github.com/rails/rails/releases/tag/v2.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.3/manifests"},{"name":"v2.1.0_RC1","sha":"d2212c1601dcd67e72e9d52f98347d3285fd7134","kind":"tag","published_at":"2008-05-12T00:02:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.1.0_RC1","html_url":"https://github.com/rails/rails/releases/tag/v2.1.0_RC1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.1.0_RC1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.0_RC1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.1.0_RC1/manifests"},{"name":"v2.0.2","sha":"c8da518bbfedc2a06b1d96912ddae00e57f21748","kind":"tag","published_at":"2008-04-11T00:25:55.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.2","html_url":"https://github.com/rails/rails/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"db885e81b9dc918a75bd66b1631a13e10447d0ff","kind":"tag","published_at":"2008-04-11T00:25:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.1","html_url":"https://github.com/rails/rails/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.1/manifests"},{"name":"v2.0.0_RC2","sha":"1d32cec17d768ac78d52903f5ed8b19cc37c7f78","kind":"tag","published_at":"2008-04-11T00:25:52.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.0_RC2","html_url":"https://github.com/rails/rails/releases/tag/v2.0.0_RC2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.0_RC2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0_RC2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0_RC2/manifests"},{"name":"v2.0.0_RC1","sha":"0f2c6302a19abce498d6cdbd44df0131c51fc8a3","kind":"tag","published_at":"2008-04-11T00:25:50.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.0_RC1","html_url":"https://github.com/rails/rails/releases/tag/v2.0.0_RC1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.0_RC1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0_RC1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0_RC1/manifests"},{"name":"v2.0.0_PR","sha":"7275d2749cb829d89bffe7e6aa87c99084351f6a","kind":"tag","published_at":"2008-04-11T00:25:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.0_PR","html_url":"https://github.com/rails/rails/releases/tag/v2.0.0_PR","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.0_PR","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0_PR","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0_PR/manifests"},{"name":"v2.0.0","sha":"db885e81b9dc918a75bd66b1631a13e10447d0ff","kind":"tag","published_at":"2008-04-11T00:25:47.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v2.0.0","html_url":"https://github.com/rails/rails/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v2.0.0/manifests"},{"name":"v1.2.6","sha":"9c190098e0f80cf2638223142f335ffb25212b86","kind":"tag","published_at":"2008-04-11T00:25:45.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.6","html_url":"https://github.com/rails/rails/releases/tag/v1.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.6/manifests"},{"name":"v1.2.5","sha":"d201969236f1696e70c73e12a93229feac69ceda","kind":"tag","published_at":"2008-04-11T00:25:44.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.5","html_url":"https://github.com/rails/rails/releases/tag/v1.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.5/manifests"},{"name":"v1.2.4","sha":"478cd8223c5ef43abbbb347c5517910a5ab91b67","kind":"tag","published_at":"2008-04-11T00:25:42.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.4","html_url":"https://github.com/rails/rails/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"30549718ac827f3ae8c7afc8dc9a6bf639e4e65c","kind":"tag","published_at":"2008-04-11T00:25:41.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.3","html_url":"https://github.com/rails/rails/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"e73bdfc31be5acfddefdff6fa40515c145241f52","kind":"tag","published_at":"2008-04-11T00:25:39.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.2","html_url":"https://github.com/rails/rails/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"03e763ffc823531ea5a5a3be7134318f85370139","kind":"tag","published_at":"2008-04-11T00:25:37.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.1","html_url":"https://github.com/rails/rails/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.1/manifests"},{"name":"v1.2.0_RC2","sha":"83a21f75cf518b7f50581041cfce038c196a56b5","kind":"tag","published_at":"2008-04-11T00:25:36.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.0_RC2","html_url":"https://github.com/rails/rails/releases/tag/v1.2.0_RC2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.0_RC2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.0_RC2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.0_RC2/manifests"},{"name":"v1.2.0_RC1","sha":"12949bbc135a33c9618e7816105d70b8a9c7e426","kind":"tag","published_at":"2008-04-11T00:25:34.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.0_RC1","html_url":"https://github.com/rails/rails/releases/tag/v1.2.0_RC1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.0_RC1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.0_RC1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.0_RC1/manifests"},{"name":"v1.2.0","sha":"5988aaa50e72643b021ec5e8562d14a39b4f54e1","kind":"tag","published_at":"2008-04-11T00:25:31.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.2.0","html_url":"https://github.com/rails/rails/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.2.0/manifests"},{"name":"v1.1.6","sha":"e071b60e17913e210baf9bf77c4c5c0bb344d999","kind":"tag","published_at":"2008-04-11T00:25:29.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.6","html_url":"https://github.com/rails/rails/releases/tag/v1.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.6/manifests"},{"name":"v1.1.5","sha":"4874df1d674bccbe2fa41a12bb93fa63a5d489ee","kind":"tag","published_at":"2008-04-11T00:25:28.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.5","html_url":"https://github.com/rails/rails/releases/tag/v1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.5/manifests"},{"name":"v1.1.4","sha":"14f11a73ed8cd50fa9075e3f068feaf3b89686ba","kind":"tag","published_at":"2008-04-11T00:25:26.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.4","html_url":"https://github.com/rails/rails/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"0c516b370b08e3e095fe24cc0e2b8d52fdecf9e0","kind":"tag","published_at":"2008-04-11T00:25:25.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.3","html_url":"https://github.com/rails/rails/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"83824935518f62cee9cc1c120b125085072f583c","kind":"tag","published_at":"2008-04-11T00:25:21.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.2","html_url":"https://github.com/rails/rails/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"496725022a09cd2100e1550745064fb5a6308ee4","kind":"tag","published_at":"2008-04-11T00:25:19.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.1","html_url":"https://github.com/rails/rails/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.1/manifests"},{"name":"v1.1.0_RC1","sha":"330823687bbae1c05af6545912377d317300c1bb","kind":"tag","published_at":"2008-04-11T00:25:18.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.0_RC1","html_url":"https://github.com/rails/rails/releases/tag/v1.1.0_RC1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.0_RC1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.0_RC1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.0_RC1/manifests"},{"name":"v1.1.0","sha":"9babb2014ba101e8c4a7b7808c3e3624ee7bb8d7","kind":"tag","published_at":"2008-04-11T00:25:16.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.1.0","html_url":"https://github.com/rails/rails/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"37e0d5de899cfbb3703067daefe2546215aaa4cc","kind":"tag","published_at":"2008-04-11T00:25:14.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v1.0.0","html_url":"https://github.com/rails/rails/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v1.0.0/manifests"},{"name":"v0.9.5","sha":"11611c1b002243a766c86c374b812c61a5b672c7","kind":"tag","published_at":"2008-04-11T00:25:13.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.9.5","html_url":"https://github.com/rails/rails/releases/tag/v0.9.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.9.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.5/manifests"},{"name":"v0.9.4.1","sha":"03e44cbcb2426a97dd35f76bc2ac6491c69821b1","kind":"tag","published_at":"2008-04-11T00:25:11.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.9.4.1","html_url":"https://github.com/rails/rails/releases/tag/v0.9.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.9.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.4.1/manifests"},{"name":"v0.9.4","sha":"3b9be80a3a6b83156562d218e459822a51d6795c","kind":"tag","published_at":"2008-04-11T00:25:10.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.9.4","html_url":"https://github.com/rails/rails/releases/tag/v0.9.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.9.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.4/manifests"},{"name":"v0.9.3","sha":"b3739fca2c185831c97efdd9fdcaa23476863539","kind":"tag","published_at":"2008-04-11T00:25:08.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.9.3","html_url":"https://github.com/rails/rails/releases/tag/v0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.9.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.3/manifests"},{"name":"v0.9.2","sha":"d9c0a37f37402fa128302b7c048201d2180a029e","kind":"tag","published_at":"2008-04-11T00:25:07.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.9.2","html_url":"https://github.com/rails/rails/releases/tag/v0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.9.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.2/manifests"},{"name":"v0.9.1","sha":"ed14042feac6ff84670958fc3e2017aaacac5856","kind":"tag","published_at":"2008-04-11T00:25:06.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.9.1","html_url":"https://github.com/rails/rails/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.9.1/manifests"},{"name":"v0.14.4","sha":"93bd3b00e16cb6d79d38480e1827935067c8c771","kind":"tag","published_at":"2008-04-11T00:25:04.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.14.4","html_url":"https://github.com/rails/rails/releases/tag/v0.14.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.14.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.4/manifests"},{"name":"v0.14.3","sha":"c2eb22e5c69caba0f9eeb5b95558837d0d572f44","kind":"tag","published_at":"2008-04-11T00:25:02.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.14.3","html_url":"https://github.com/rails/rails/releases/tag/v0.14.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.14.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.3/manifests"},{"name":"v0.14.2","sha":"98b0b117f755a5d27ac5161dc7d0757c3c217230","kind":"tag","published_at":"2008-04-11T00:25:01.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.14.2","html_url":"https://github.com/rails/rails/releases/tag/v0.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.14.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.2/manifests"},{"name":"v0.14.1","sha":"b437eee41d38188f10f11e041b82d7def0a20629","kind":"tag","published_at":"2008-04-11T00:24:59.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.14.1","html_url":"https://github.com/rails/rails/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.14.1/manifests"},{"name":"v0.13.1","sha":"1911f8eee928915f1020753a4a3ba34c81131a66","kind":"tag","published_at":"2008-04-11T00:24:57.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.13.1","html_url":"https://github.com/rails/rails/releases/tag/v0.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.13.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.13.1/manifests"},{"name":"v0.13.0","sha":"a0d31fcd81ef690adf56568aa954a07081c6aecc","kind":"tag","published_at":"2008-04-11T00:24:56.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.13.0","html_url":"https://github.com/rails/rails/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.13.0/manifests"},{"name":"v0.12.0","sha":"0270b26e41f33d66af3a2bea1371af037b0b5923","kind":"tag","published_at":"2008-04-11T00:24:54.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.12.0","html_url":"https://github.com/rails/rails/releases/tag/v0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.12.0/manifests"},{"name":"v0.11.1","sha":"f7b89667ac4157d64697aa2f51bcea8a26c0fd8f","kind":"tag","published_at":"2008-04-11T00:24:53.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.11.1","html_url":"https://github.com/rails/rails/releases/tag/v0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.11.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.11.1/manifests"},{"name":"v0.11.0","sha":"61d236d94133fb7ae2f0dce0badaf2bf07b301b7","kind":"tag","published_at":"2008-04-11T00:24:51.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.11.0","html_url":"https://github.com/rails/rails/releases/tag/v0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.11.0/manifests"},{"name":"v0.10.1","sha":"25b656fefa75954cffff119a14cf7650f4f99a92","kind":"tag","published_at":"2008-04-11T00:24:49.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.10.1","html_url":"https://github.com/rails/rails/releases/tag/v0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.10.1/manifests"},{"name":"v0.10.0","sha":"e2724aa1856253f4fc48ddc251583042c5f06029","kind":"tag","published_at":"2008-04-11T00:24:46.000Z","download_url":"https://codeload.github.com/rails/rails/tar.gz/v0.10.0","html_url":"https://github.com/rails/rails/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/rails/rails@v0.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/tags/v0.10.0/manifests"}]},"repo_metadata_updated_at":"2025-07-19T02:10:08.599Z","dependent_packages_count":29,"downloads":462991287,"downloads_period":"total","dependent_repos_count":367148,"rankings":{"downloads":0.04850525752389023,"dependent_repos_count":0.05408057448065923,"dependent_packages_count":0.8725371037343473,"stargazers_count":0.0016725950870306978,"forks_count":0.0011150633913537984,"docker_downloads_count":0.1538787480068242,"average":0.1886315570373509},"purl":"pkg:gem/actioncable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/actioncable","docker_dependents_count":1109,"docker_downloads_count":764797622,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/actioncable","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/actioncable/dependencies","status":null,"funding_links":[],"critical":true,"issue_metadata":{"last_synced_at":"2025-07-18T17:41:30.817Z","issues_count":2200,"pull_requests_count":5089,"avg_time_to_close_issue":9526606.501118569,"avg_time_to_close_pull_request":3745372.838907207,"issues_closed_count":1762,"pull_requests_closed_count":4243,"pull_request_authors_count":1347,"issue_authors_count":1531,"avg_comments_per_issue":5.355,"avg_comments_per_pull_request":2.3865199449793675,"merged_pull_requests_count":3279,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":774,"past_year_pull_requests_count":2050,"past_year_avg_time_to_close_issue":1735372.546178344,"past_year_avg_time_to_close_pull_request":529159.3280047366,"past_year_issues_closed_count":622,"past_year_pull_requests_closed_count":1688,"past_year_pull_request_authors_count":691,"past_year_issue_authors_count":606,"past_year_avg_comments_per_issue":3.0645994832041343,"past_year_avg_comments_per_pull_request":1.56,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1340,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Frails/issues","maintainers":[{"login":"zzak","count":222,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zzak"},{"login":"skipkayhil","count":205,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/skipkayhil"},{"login":"p8","count":196,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/p8"},{"login":"fatkodima","count":170,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fatkodima"},{"login":"yahonda","count":133,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yahonda"},{"login":"byroot","count":118,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/byroot"},{"login":"dhh","count":87,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dhh"},{"login":"jonathanhefner","count":84,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jonathanhefner"},{"login":"ghiculescu","count":68,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ghiculescu"},{"login":"Edouard-chin","count":62,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Edouard-chin"},{"login":"akhilgkrishnan","count":57,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/akhilgkrishnan"},{"login":"rafaelfranca","count":50,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"},{"login":"fxn","count":48,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fxn"},{"login":"kamipo","count":48,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kamipo"},{"login":"gmcgibbon","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gmcgibbon"},{"login":"flavorjones","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/flavorjones"},{"login":"jhawthorn","count":33,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jhawthorn"},{"login":"eileencodes","count":29,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eileencodes"},{"login":"tenderlove","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tenderlove"},{"login":"matthewd","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/matthewd"},{"login":"morgoth","count":15,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/morgoth"},{"login":"y-yagi","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/y-yagi"},{"login":"rosa","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rosa"},{"login":"jeremy","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"gregmolnar","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gregmolnar"},{"login":"composerinteralia","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/composerinteralia"},{"login":"eugeneius","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eugeneius"},{"login":"siaw23","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/siaw23"},{"login":"kirs","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kirs"},{"login":"claudiob","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/claudiob"},{"login":"amatsuda","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/amatsuda"},{"login":"schneems","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/schneems"},{"login":"sikachu","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sikachu"},{"login":"guillaumebriday","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/guillaumebriday"},{"login":"andyatkinson","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/andyatkinson"},{"login":"vipulnsward","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vipulnsward"},{"login":"guilleiguaran","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/guilleiguaran"},{"login":"andrewn617","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/andrewn617"},{"login":"robin850","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/robin850"},{"login":"rossta","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rossta"},{"login":"senny","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/senny"},{"login":"cristianbica","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cristianbica"},{"login":"repinel","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/repinel"},{"login":"drogus","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/drogus"},{"login":"alexcameron89","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexcameron89"},{"login":"carlosantoniodasilva","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/carlosantoniodasilva"},{"login":"keeran","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/keeran"},{"login":"chancancode","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chancancode"}],"active_maintainers":[{"login":"zzak","count":97,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zzak"},{"login":"byroot","count":95,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/byroot"},{"login":"p8","count":81,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/p8"},{"login":"fatkodima","count":72,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fatkodima"},{"login":"skipkayhil","count":68,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/skipkayhil"},{"login":"yahonda","count":61,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yahonda"},{"login":"Edouard-chin","count":49,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Edouard-chin"},{"login":"kamipo","count":32,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kamipo"},{"login":"dhh","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dhh"},{"login":"flavorjones","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/flavorjones"},{"login":"ghiculescu","count":26,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ghiculescu"},{"login":"gmcgibbon","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gmcgibbon"},{"login":"rafaelfranca","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rafaelfranca"},{"login":"jhawthorn","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jhawthorn"},{"login":"fxn","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/fxn"},{"login":"matthewd","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/matthewd"},{"login":"tenderlove","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tenderlove"},{"login":"y-yagi","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/y-yagi"},{"login":"gregmolnar","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gregmolnar"},{"login":"jeremy","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeremy"},{"login":"rosa","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rosa"},{"login":"siaw23","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/siaw23"},{"login":"claudiob","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/claudiob"},{"login":"morgoth","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/morgoth"},{"login":"kirs","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kirs"},{"login":"jonathanhefner","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jonathanhefner"},{"login":"eileencodes","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eileencodes"},{"login":"sikachu","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sikachu"},{"login":"alexcameron89","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexcameron89"},{"login":"vipulnsward","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vipulnsward"},{"login":"akhilgkrishnan","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/akhilgkrishnan"},{"login":"andyatkinson","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/andyatkinson"},{"login":"schneems","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/schneems"},{"login":"robin850","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/robin850"},{"login":"chancancode","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chancancode"},{"login":"eugeneius","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eugeneius"},{"login":"guillaumebriday","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/guillaumebriday"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/actioncable/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/actioncable/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/actioncable/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/actioncable/related_packages","maintainers":[{"uuid":"43492","login":"jhawthorn","name":null,"email":null,"url":null,"packages_count":139,"html_url":"https://rubygems.org/profiles/jhawthorn","role":null,"created_at":"2022-11-07T12:32:52.773Z","updated_at":"2022-11-07T12:32:52.773Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jhawthorn/packages"},{"uuid":"207","login":"tenderlove","name":null,"email":null,"url":null,"packages_count":184,"html_url":"https://rubygems.org/profiles/tenderlove","role":null,"created_at":"2022-11-07T12:32:52.789Z","updated_at":"2022-11-07T12:32:52.789Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/tenderlove/packages"},{"uuid":"54617","login":"kamipo","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://rubygems.org/profiles/kamipo","role":null,"created_at":"2022-11-07T12:32:52.768Z","updated_at":"2022-11-07T12:32:52.768Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/kamipo/packages"},{"uuid":"46413","login":"byroot","name":null,"email":null,"url":null,"packages_count":104,"html_url":"https://rubygems.org/profiles/byroot","role":null,"created_at":"2022-11-07T12:32:52.779Z","updated_at":"2022-11-07T12:32:52.779Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/byroot/packages"},{"uuid":"1550","login":"webster132","name":null,"email":null,"url":null,"packages_count":95,"html_url":"https://rubygems.org/profiles/webster132","role":null,"created_at":"2022-11-07T12:32:52.784Z","updated_at":"2022-11-07T12:32:52.784Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/webster132/packages"},{"uuid":"43998","login":"guilleiguaran","name":null,"email":null,"url":null,"packages_count":85,"html_url":"https://rubygems.org/profiles/guilleiguaran","role":null,"created_at":"2022-11-07T12:32:52.795Z","updated_at":"2022-11-07T12:32:52.795Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/guilleiguaran/packages"},{"uuid":"32977","login":"fxn","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://rubygems.org/profiles/fxn","role":null,"created_at":"2022-11-07T12:32:52.800Z","updated_at":"2022-11-07T12:32:52.800Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/fxn/packages"},{"uuid":"429","login":"cantoniodasilva","name":null,"email":null,"url":null,"packages_count":67,"html_url":"https://rubygems.org/profiles/cantoniodasilva","role":null,"created_at":"2022-11-07T12:32:52.806Z","updated_at":"2022-11-07T12:32:52.806Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/cantoniodasilva/packages"},{"uuid":"47349","login":"rafaelfranca","name":null,"email":null,"url":null,"packages_count":120,"html_url":"https://rubygems.org/profiles/rafaelfranca","role":null,"created_at":"2022-11-07T12:32:52.811Z","updated_at":"2022-11-07T12:32:52.811Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/rafaelfranca/packages"},{"uuid":"337","login":"jeremydaer","name":null,"email":null,"url":null,"packages_count":81,"html_url":"https://rubygems.org/profiles/jeremydaer","role":null,"created_at":"2022-11-07T12:32:52.817Z","updated_at":"2022-11-07T12:32:52.817Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jeremydaer/packages"},{"uuid":"2933","login":"lifofifo","name":null,"email":null,"url":null,"packages_count":14,"html_url":"https://rubygems.org/profiles/lifofifo","role":null,"created_at":"2022-11-07T12:32:52.822Z","updated_at":"2022-11-07T12:32:52.822Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/lifofifo/packages"},{"uuid":"528","login":"matthewd","name":null,"email":null,"url":null,"packages_count":66,"html_url":"https://rubygems.org/profiles/matthewd","role":null,"created_at":"2022-11-07T12:32:52.829Z","updated_at":"2022-11-07T12:32:52.829Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/matthewd/packages"},{"uuid":"96878","login":"eileencodes","name":null,"email":null,"url":null,"packages_count":51,"html_url":"https://rubygems.org/profiles/eileencodes","role":null,"created_at":"2022-11-07T12:32:52.838Z","updated_at":"2022-11-07T12:32:52.838Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/eileencodes/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":198748,"maintainers_count":66660,"namespaces_count":0,"keywords_count":17915,"github":"rubygems","metadata":{"funded_packages_count":7101},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2025-07-19T05:45:08.388Z","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":50,"unique_repositories_count_past_30_days":3,"recent_issues":[{"uuid":"3797863414","node_id":"PR_kwDOBBJCIM68YOFj","number":287,"state":"closed","title":"Bump the dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-13T18:03:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-09T18:03:20.000Z","updated_at":"2026-01-13T18:03:47.000Z","time_to_close":345625,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":15,"packages":[{"name":"railties","old_version":"8.1.1","new_version":"8.1.2","repository_url":"https://github.com/rails/rails"},{"name":"rails","old_version":"8.1.1","new_version":"8.1.2"},{"name":"rubocop-rspec","old_version":"3.8.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"actioncable","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionmailbox","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionmailer","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionpack","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actiontext","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionview","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activejob","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activemodel","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activerecord","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activestorage","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activesupport","old_version":"8.1.1","new_version":"8.1.2"},{"name":"thor","old_version":"1.4.0","new_version":"1.5.0"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the dependencies group with 2 updates in the / directory: [railties](https://github.com/rails/rails) and [rubocop-rspec](https://github.com/rubocop/rubocop-rspec).\n\nUpdates `railties` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erailties's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/railties/CHANGELOG.md\"\u003erailties's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip all system test files on app generation.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEileen M. Uchitelle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003edb:system:change\u003c/code\u003e to correctly update Dockerfile base packages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJosiah Smith\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix devcontainer volume mount when app name differs from folder name.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the \u003ccode\u003erails notes\u003c/code\u003e command to properly extract notes in CSS files.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid White\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default Dockerfile to properly include the \u003ccode\u003evendor/\u003c/code\u003e directory during \u003ccode\u003ebundle install\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eZhong Sheng\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d3fe83ff97d86480103c8757f055f6903612505b\"\u003e\u003ccode\u003ed3fe83f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56541\"\u003e#56541\u003c/a\u003e from rails/remove-system-test-from-default-ci-template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2bebf4fe0cbddebd3c3d3c373ee99af0bae5f040\"\u003e\u003ccode\u003e2bebf4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56488\"\u003e#56488\u003c/a\u003e from zzak/re-56365\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0f8014a0ff97888c747a481ea8ef61015c160fd4\"\u003e\u003ccode\u003e0f8014a\u003c/code\u003e\u003c/a\u003e [8-1-stable] Minitest 6 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/abd3a1b758e69df4af4b881aa07c424f9a4fc0e0\"\u003e\u003ccode\u003eabd3a1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56416\"\u003e#56416\u003c/a\u003e from byroot/railties-ci-bin-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/660af7197e62d0ee8300992e311c7eeb16172205\"\u003e\u003ccode\u003e660af71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56412\"\u003e#56412\u003c/a\u003e from davidrhyswhite/fix-css-note-comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/991ccf35933f5df1dcf1283a1ad2f9667c864fa6\"\u003e\u003ccode\u003e991ccf3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56393\"\u003e#56393\u003c/a\u003e from rails/add-exclude-keys-to-live-controller\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/18529e3eb07be69113c951532e773543593bbd8b\"\u003e\u003ccode\u003e18529e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56365\"\u003e#56365\u003c/a\u003e from jeromedalbert/include-prerelease-string-in-rub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8effe8e09a62e721afdb181c401f2514a53e0095\"\u003e\u003ccode\u003e8effe8e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56323\"\u003e#56323\u003c/a\u003e from jeromedalbert/check-yml-no-double-lines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.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.1 to 8.1.2\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.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/695ac6d83e14d85c131dc4bbad04e9d9cd22676c\"\u003e\u003ccode\u003e695ac6d\u003c/code\u003e\u003c/a\u003e Update Gemfile.lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/01263f18e8cd1f9443fe50940682b89ad862450e\"\u003e\u003ccode\u003e01263f1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56512\"\u003e#56512\u003c/a\u003e from byroot/remove-minitest-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d3fe83ff97d86480103c8757f055f6903612505b\"\u003e\u003ccode\u003ed3fe83f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56541\"\u003e#56541\u003c/a\u003e from rails/remove-system-test-from-default-ci-template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/528351457f6aa2a472c22b6cf481bea7d2621e0b\"\u003e\u003ccode\u003e5283514\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56012\"\u003e#56012\u003c/a\u003e from jmalcic/restore-default-adc-for-gcs-iam-client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53e82ef8a931d4b6d01b9240ea6e486b31e14d61\"\u003e\u003ccode\u003e53e82ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56534\"\u003e#56534\u003c/a\u003e from khasinski/fix-sqlite3-schema-dump-default-nil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d2509f864aed30800b9e6d305831a62c825033a5\"\u003e\u003ccode\u003ed2509f8\u003c/code\u003e\u003c/a\u003e Allow backburner warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c48fd1c1e0a66217e03fe227197dd7b8ff0fc3c\"\u003e\u003ccode\u003e8c48fd1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56535\"\u003e#56535\u003c/a\u003e from eglitobias/8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/adcface26aae1018cdfe87610f85c87508b52865\"\u003e\u003ccode\u003eadcface\u003c/code\u003e\u003c/a\u003e Fix PostgreSQL schema_search_path after reconnect and reset\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rspec` from 3.8.0 to 3.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/releases\"\u003erubocop-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop RSpec v3.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/LeakyLocalVariable\u003c/code\u003e when variables are used only in example metadata (e.g., skip messages). (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ScatteredSetup\u003c/code\u003e when the hook is defined inside a class method. (\u003ca href=\"https://github.com/d4rky-pl\"\u003e\u003ccode\u003e@​d4rky-pl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/DescribedClass\u003c/code\u003e inside dynamically evaluated blocks (\u003ccode\u003eclass_eval\u003c/code\u003e, \u003ccode\u003emodule_eval\u003c/code\u003e, \u003ccode\u003einstance_eval\u003c/code\u003e, \u003ccode\u003eclass_exec\u003c/code\u003e, \u003ccode\u003emodule_exec\u003c/code\u003e, \u003ccode\u003einstance_exec\u003c/code\u003e). (\u003ca href=\"https://github.com/sucicfilip\"\u003e\u003ccode\u003e@​sucicfilip\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/Output\u003c/code\u003e. (\u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md\"\u003erubocop-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.0 (2026-01-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/LeakyLocalVariable\u003c/code\u003e when variables are used only in example metadata (e.g., skip messages). ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ScatteredSetup\u003c/code\u003e when the hook is defined inside a class method. ([\u003ca href=\"https://github.com/d4rky-pl\"\u003e\u003ccode\u003e@​d4rky-pl\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/DescribedClass\u003c/code\u003e inside dynamically evaluated blocks (\u003ccode\u003eclass_eval\u003c/code\u003e, \u003ccode\u003emodule_eval\u003c/code\u003e, \u003ccode\u003einstance_eval\u003c/code\u003e, \u003ccode\u003eclass_exec\u003c/code\u003e, \u003ccode\u003emodule_exec\u003c/code\u003e, \u003ccode\u003einstance_exec\u003c/code\u003e). ([\u003ca href=\"https://github.com/sucicfilip\"\u003e\u003ccode\u003e@​sucicfilip\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/Output\u003c/code\u003e. ([\u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\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/rubocop/rubocop-rspec/commit/f7aecf0580cda23bd5b25c3cfddddefabb6228bc\"\u003e\u003ccode\u003ef7aecf0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2151\"\u003e#2151\u003c/a\u003e from rubocop/release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/893a25b941233616ee055201917bcb25781ce522\"\u003e\u003ccode\u003e893a25b\u003c/code\u003e\u003c/a\u003e Bump version to 3.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/91ad43dfa70d99b8d9637526a00e7cb69ace1af1\"\u003e\u003ccode\u003e91ad43d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2150\"\u003e#2150\u003c/a\u003e from kevinrobell-st/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/802b3863b24c1d55c9efcb40912bcfd36b9eb075\"\u003e\u003ccode\u003e802b386\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/a03e0c7ea939b279b2df7f9bd6ad001d47524f64\"\u003e\u003ccode\u003ea03e0c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2149\"\u003e#2149\u003c/a\u003e from rubocop/ci-test-ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/68f25d9d79d280ae1859c876638b2ac3a1f51d57\"\u003e\u003ccode\u003e68f25d9\u003c/code\u003e\u003c/a\u003e Temporarily add irb to Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/b9e50b86916704e039ab60966684943ad82780bb\"\u003e\u003ccode\u003eb9e50b8\u003c/code\u003e\u003c/a\u003e CI: Test with Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/b63bcd80ceba07294f5507ebd4692a54a9ebeb09\"\u003e\u003ccode\u003eb63bcd8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2148\"\u003e#2148\u003c/a\u003e from sucicfilip/fix-described-class-inside-eval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/278245a100f00a923bab3e2e0acac5cd5d7b7b46\"\u003e\u003ccode\u003e278245a\u003c/code\u003e\u003c/a\u003e Fix RSpec/DescribedClass to ignore *_eval and *_exec blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/ca18f5e7e9abc08bfd826c6e1b66963b48db5d71\"\u003e\u003ccode\u003eca18f5e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2144\"\u003e#2144\u003c/a\u003e from rubocop/dont-use-ruby-version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rspec/compare/v3.8.0...v3.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dc94813e8151d0b56ec6c48b4db861cc7a666a8e\"\u003e\u003ccode\u003edc94813\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56050\"\u003e#56050\u003c/a\u003e from jclusso/fix-stylesheet-tag-nonce-mailer\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003econfig.action_controller.live_streaming_excluded_keys\u003c/code\u003e to control execution state sharing in ActionController::Live.\u003c/p\u003e\n\u003cp\u003eWhen using ActionController::Live, actions are executed in a separate thread that shares\nstate from the parent thread. This new configuration allows applications to opt-out specific\nstate keys that should not be shared.\u003c/p\u003e\n\u003cp\u003eThis is useful when streaming inside a \u003ccode\u003econnected_to\u003c/code\u003e block, where you may want\nthe streaming thread to use its own database connection context.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e# config/application.rb\nconfig.action_controller.live_streaming_excluded_keys = [:active_record_connected_to_stack]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBy default, all keys are shared.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEileen M. Uchitelle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eIpSpoofAttackError\u003c/code\u003e message to include \u003ccode\u003eForwarded\u003c/code\u003e header content.\u003c/p\u003e\n\u003cp\u003eWithout it, the error message may be misleading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df98a0d4b820d9c85a466976860c8295d7304acc\"\u003e\u003ccode\u003edf98a0d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56440\"\u003e#56440\u003c/a\u003e from zzak/ac-live-streaming-keys-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0f8014a0ff97888c747a481ea8ef61015c160fd4\"\u003e\u003ccode\u003e0f8014a\u003c/code\u003e\u003c/a\u003e [8-1-stable] Minitest 6 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/991ccf35933f5df1dcf1283a1ad2f9667c864fa6\"\u003e\u003ccode\u003e991ccf3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56393\"\u003e#56393\u003c/a\u003e from rails/add-exclude-keys-to-live-controller\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/662609d35301c42973e0b183d1294c61bb060390\"\u003e\u003ccode\u003e662609d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56252\"\u003e#56252\u003c/a\u003e from callmesangio/fix-testing-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/81dca9cc388b7426cfcd39e34e3bc57fd287b74b\"\u003e\u003ccode\u003e81dca9c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56285\"\u003e#56285\u003c/a\u003e from markokajzer/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c98c994f5994a0aae2b258c41732d9e0e4339f5b\"\u003e\u003ccode\u003ec98c994\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56256\"\u003e#56256\u003c/a\u003e from zzak/re-56186\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4388688077b6406e9d71fd622f98677a83a2c2d0\"\u003e\u003ccode\u003e4388688\u003c/code\u003e\u003c/a\u003e Fix redirect_test leaking subscription state\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13589db95b8380411baeea21dfdd2cc8e7843231\"\u003e\u003ccode\u003e13589db\u003c/code\u003e\u003c/a\u003e Fix dependency on Rails constant\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/27e709a7b623e376e12ff197ffc9ca13d8d7be20\"\u003e\u003ccode\u003e27e709a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56059\"\u003e#56059\u003c/a\u003e from Shopify/hm-zpvonttrlztqnryl\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003efile_field\u003c/code\u003e to join mime types with a comma when provided as Array\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003efile_field(:article, :image, accept: ['image/png', 'image/gif', 'image/jpeg'])\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow behaves likes:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efile_field(:article, :image, accept: 'image/png,image/gif,image/jpeg')\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eBogdan Gusiev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix strict locals parsing to handle multiline definitions.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econtent_security_policy_nonce\u003c/code\u003e error in mailers when using \u003ccode\u003econtent_security_policy_nonce_auto\u003c/code\u003e setting.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003econtent_security_policy_nonce helper\u003c/code\u003e is provided by \u003ccode\u003eActionController::ContentSecurityPolicy\u003c/code\u003e, and it relies on \u003ccode\u003erequest.content_security_policy_nonc\u003c/code\u003ee. Mailers lack both the module and the request object.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJarrett Lusso\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/27aa94fb4430b8dd9464081ad9b5ca083452570c\"\u003e\u003ccode\u003e27aa94f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56389\"\u003e#56389\u003c/a\u003e from bogdan/semantic-file-input-accept\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7cf18e084ccc631bcc96b20981fb599b806268ac\"\u003e\u003ccode\u003e7cf18e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56316\"\u003e#56316\u003c/a\u003e from shivabhusal/support-closing_parenthesis-in-nex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/160db66368584b3c6938d9b1860e865d7dd7c1b6\"\u003e\u003ccode\u003e160db66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56270\"\u003e#56270\u003c/a\u003e from Saidbek/fix-multiline-strict-locals-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/386004ebd0b84b6e31a2a34b56660a65bf0c4997\"\u003e\u003ccode\u003e386004e\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for \u003ca href=\"https://redirect.github.com/rails/rails/issues/56050\"\u003e#56050\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dc94813e8151d0b56ec6c48b4db861cc7a666a8e\"\u003e\u003ccode\u003edc94813\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56050\"\u003e#56050\u003c/a\u003e from jclusso/fix-stylesheet-tag-nonce-mailer\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e to respect \u003ccode\u003ejob_class.enqueue_after_transaction_commit\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eperform_all_later\u003c/code\u003e would enqueue all jobs immediately, even if\nthey had \u003ccode\u003eenqueue_after_transaction_commit = true\u003c/code\u003e. Now it correctly defers\njobs with this setting until after transaction commits, matching the behavior\nof \u003ccode\u003eperform_later\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix using custom serializers with \u003ccode\u003eActiveJob::Arguments.serialize\u003c/code\u003e when\n\u003ccode\u003eActiveJob::Base\u003c/code\u003e hasn't been loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f33ca37f57b456a8c3741373ae091a86a8a29589\"\u003e\u003ccode\u003ef33ca37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56507\"\u003e#56507\u003c/a\u003e from tiramizoo/rm-sucker_punch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63a0e6cbaf0227eb972fb165c6b9338ae7ca4d38\"\u003e\u003ccode\u003e63a0e6c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56264\"\u003e#56264\u003c/a\u003e from byroot/fix/activejob/perform_all_later-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c8155a611979cc620eb252769dd3fc428c706bed\"\u003e\u003ccode\u003ec8155a6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56093\"\u003e#56093\u003c/a\u003e from skipkayhil/hm-rynrvruzqlkttuqt\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1723cc565e97516eed35e7da09a571f5618b48ee\"\u003e\u003ccode\u003e1723cc5\u003c/code\u003e\u003c/a\u003e Address \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e offense at 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3c3c20bfeae7e2cdea1843bffcc421bab159c5fb\"\u003e\u003ccode\u003e3c3c20b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56058\"\u003e#56058\u003c/a\u003e from Shopify/uk-am-secure-password-require-fix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix merging relations with arel equality predicates with null relations.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 schema dump for non-autoincrement integer primary keys.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eschema.rb\u003c/code\u003e should incorrectly restore that table with an auto incrementing\nprimary key.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eChris Hasiński\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix PostgreSQL \u003ccode\u003eschema_search_path\u003c/code\u003e not being reapplied after \u003ccode\u003ereset!\u003c/code\u003e or \u003ccode\u003ereconnect!\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eschema_search_path\u003c/code\u003e configured in \u003ccode\u003edatabase.yml\u003c/code\u003e is now correctly\nreapplied instead of falling back to PostgreSQL defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eTobias Egli\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore the ability of enum to be foats.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eenum :rating, { low: 0.0, medium: 0.5, high: 1.0 },\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIn Rails 8.1.0, enum values are eagerly validated, and floats weren't expected.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure batched preloaded associations accounts for klass when grouping to avoid issues with STI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e, \u003cem\u003eStjepan Hadjic\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveRecord::SoleRecordExceeded#record\u003c/code\u003e to return the relation.\u003c/p\u003e\n\u003cp\u003eThis was the case until Rails 7.2, but starting from 8.0 it\nstarted mistakenly returning the model class.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove PostgreSQLAdapter resilience to Timeout.timeout.\u003c/p\u003e\n\u003cp\u003eBetter handle asynchronous exceptions being thrown inside\nthe \u003ccode\u003ereconnect!\u003c/code\u003e method.\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/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53e82ef8a931d4b6d01b9240ea6e486b31e14d61\"\u003e\u003ccode\u003e53e82ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56534\"\u003e#56534\u003c/a\u003e from khasinski/fix-sqlite3-schema-dump-default-nil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/adcface26aae1018cdfe87610f85c87508b52865\"\u003e\u003ccode\u003eadcface\u003c/code\u003e\u003c/a\u003e Fix PostgreSQL schema_search_path after reconnect and reset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13952d56e90bcba5cfa1076a7a0b806ae9564324\"\u003e\u003ccode\u003e13952d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56447\"\u003e#56447\u003c/a\u003e from Saidbek/fix-enum-float-values-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/642baed88cfdd761f8adf68452defb5573e90dd7\"\u003e\u003ccode\u003e642baed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56482\"\u003e#56482\u003c/a\u003e from fatkodima/fix-merge-arel-equality-and-null\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/49a1f7253d910638a2885629cc049d38db878491\"\u003e\u003ccode\u003e49a1f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56415\"\u003e#56415\u003c/a\u003e from zzak/re-56047\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1b2a755fdcd13e0cdf12f06822b124209c700d35\"\u003e\u003ccode\u003e1b2a755\u003c/code\u003e\u003c/a\u003e Fix CI rerun command for active record tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/186d51ed7a78e8fb0f0069d5b3af77b507867ce2\"\u003e\u003ccode\u003e186d51e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56304\"\u003e#56304\u003c/a\u003e from fatkodima/fix-dumping-views-indexes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7acf8b301708166cc148c12a832d059d96492a23\"\u003e\u003ccode\u003e7acf8b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56287\"\u003e#56287\u003c/a\u003e from byroot/fix-sole-error-record\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRestore ADC when signing URLs with IAM for GCS\u003c/p\u003e\n\u003cp\u003eADC was previously used for automatic authorization when signing URLs with IAM.\nNow it is again, but the auth client is memoized so that new credentials are only\nrequested when the current ones expire. Other auth methods can now be used\ninstead by setting the authorization on \u003ccode\u003eActiveStorage::Service::GCSService#iam_client\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveStorage::Blob.service.iam_client.authorization = Google::Auth::ImpersonatedServiceAccountCredentials.new(options)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis is safer than setting \u003ccode\u003eGoogle::Apis::RequestOptions.default.authorization\u003c/code\u003e\nbecause it only applies to Active Storage and does not affect other Google API\nclients.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJustin Malčić\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/528351457f6aa2a472c22b6cf481bea7d2621e0b\"\u003e\u003ccode\u003e5283514\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56012\"\u003e#56012\u003c/a\u003e from jmalcic/restore-default-adc-for-gcs-iam-client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/350c13c0702bf1854e060b253f40ff42e1b5c5d6\"\u003e\u003ccode\u003e350c13c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56125\"\u003e#56125\u003c/a\u003e from zzak/re-56069\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0f8014a0ff97888c747a481ea8ef61015c160fd4\"\u003e\u003ccode\u003e0f8014a\u003c/code\u003e\u003c/a\u003e [8-1-stable] Minitest 6 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/991ccf35933f5df1dcf1283a1ad2f9667c864fa6\"\u003e\u003ccode\u003e991ccf3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56393\"\u003e#56393\u003c/a\u003e from rails/add-exclude-keys-to-live-controller\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c86465f65278d2a6200424d2853fc848a0e01356\"\u003e\u003ccode\u003ec86465f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56353\"\u003e#56353\u003c/a\u003e from rails/rmf-delegation-basic-object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fce726b75e5e2f09511cafe2142df35c7bf96921\"\u003e\u003ccode\u003efce726b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56344\"\u003e#56344\u003c/a\u003e from Saidbek/fix-inflections-fallback-to-en-locale\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/efd9bd99503c4e553aceeba7739e8f20be3ed321\"\u003e\u003ccode\u003eefd9bd9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56324\"\u003e#56324\u003c/a\u003e from jeremyevans/activesupport-uri-require\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/81dca9cc388b7426cfcd39e34e3bc57fd287b74b\"\u003e\u003ccode\u003e81dca9c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56285\"\u003e#56285\u003c/a\u003e from markokajzer/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a5c1af3b94b41f352d4f0d649375f92bfef18b74\"\u003e\u003ccode\u003ea5c1af3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56294\"\u003e#56294\u003c/a\u003e from fatkodima/fix-mem_cache_store-newer-connection...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/923f8e915e3b738a07be750d3344880df5673103\"\u003e\u003ccode\u003e923f8e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56292\"\u003e#56292\u003c/a\u003e from fatkodima/fix-redis_cache_store-newer-connecti...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thor` from 1.4.0 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/thor/releases\"\u003ethor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd specs and linter documentation by \u003ca href=\"https://github.com/hlascelles\"\u003e\u003ccode\u003e@​hlascelles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/907\"\u003erails/thor#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tree command by \u003ca href=\"https://github.com/hlascelles\"\u003e\u003ccode\u003e@​hlascelles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/906\"\u003erails/thor#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support \u003ccode\u003einsert_into_file\u003c/code\u003e erroring if the file is not changed, and add \u003ccode\u003einsert_into_file\u003c/code\u003e by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/908\"\u003erails/thor#908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport THOR_MERGE values with arguments 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/thor/pull/910\"\u003erails/thor#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHidden commands should not make an invocation ambiguous by \u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/911\"\u003erails/thor#911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet frozen_string_literal: true in colors.rb by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/913\"\u003erails/thor#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix encoding error when running a merge tool by \u003ca href=\"https://github.com/moritzschepp\"\u003e\u003ccode\u003e@​moritzschepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/916\"\u003erails/thor#916\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/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/thor/pull/913\"\u003erails/thor#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/rails/thor/pull/912\"\u003erails/thor#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/moritzschepp\"\u003e\u003ccode\u003e@​moritzschepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/thor/pull/916\"\u003erails/thor#916\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/thor/compare/v1.4.0...v1.5.0\"\u003ehttps://github.com/rails/thor/compare/v1.4.0...v1.5.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/thor/commit/6a680f2f929cc24d61b81197e113066aa18c8fbb\"\u003e\u003ccode\u003e6a680f2\u003c/code\u003e\u003c/a\u003e Prepare for 1.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/615b0c29a411302104905cf8d81af02ca0cd4765\"\u003e\u003ccode\u003e615b0c2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/919\"\u003e#919\u003c/a\u003e from rails/rmf-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/f16a2dbf503c422da309c3f2bfccbf751ca61ddb\"\u003e\u003ccode\u003ef16a2db\u003c/code\u003e\u003c/a\u003e Unlock bundler development dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/7b99536daff00deea31787e2afe7dce6fefec602\"\u003e\u003ccode\u003e7b99536\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/2a1eecb4e8b6aff1aa2941308fb2199fdb61ebe6\"\u003e\u003ccode\u003e2a1eecb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/918\"\u003e#918\u003c/a\u003e from rails/dependabot/github_actions/actions/checkout-6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/ed9ffca4e99868b3e20239125a4885dd18ba04ad\"\u003e\u003ccode\u003eed9ffca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/916\"\u003e#916\u003c/a\u003e from moritzschepp/ec-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/5b85a330ba73c5c7be4f72ca949841c707feca54\"\u003e\u003ccode\u003e5b85a33\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/2e2b684b6e29497fa9299600d21cd3dc98cd34af\"\u003e\u003ccode\u003e2e2b684\u003c/code\u003e\u003c/a\u003e fix encoding error when running a merge tool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/b2d98fea78fd993b936fc434a3ad722e73ad6bc5\"\u003e\u003ccode\u003eb2d98fe\u003c/code\u003e\u003c/a\u003e Remove whatisthor.com references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/17a3be95f40c255f12612c1491bccea4ca4a363f\"\u003e\u003ccode\u003e17a3be9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/912\"\u003e#912\u003c/a\u003e from rails/dependabot/github_actions/actions/checkout-5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/thor/compare/v1.4.0...v1.5.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/moneybird/mail_auto_link_obfuscation/pull/287","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/moneybird%2Fmail_auto_link_obfuscation/issues/287","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/287/packages"},{"uuid":"3795420531","node_id":"PR_kwDOE3bgZM68QLJJ","number":8042,"state":"closed","title":"Bump actioncable from 8.1.1 to 8.1.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-09T04:30:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-09T04:22:20.000Z","updated_at":"2026-01-09T04:30:12.000Z","time_to_close":470,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"actioncable","old_version":"8.1.1","new_version":"8.1.2","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.1.1 to 8.1.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\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=actioncable\u0026package-manager=bundler\u0026previous-version=8.1.1\u0026new-version=8.1.2)](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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/davidrunger/david_runger/pull/8042","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrunger%2Fdavid_runger/issues/8042","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8042/packages"},{"uuid":"3753008114","node_id":"PR_kwDOO58gL866GZAm","number":79,"state":"open","title":"deps(deps): bump the production-dependencies group with 54 updates","user":"dependabot[bot]","labels":["type: maintenance","status: needs-review","size: sm","dependencies","automated","bot: dependabot","lang: ruby"],"assignees":["patrick204nqh"],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T09:26:53.000Z","updated_at":"2025-12-22T10:14:36.865Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"production-dependencies","update_count":54,"packages":[{"name":"irb","old_version":"1.15.2","new_version":"1.16.0","repository_url":"https://github.com/ruby/irb"},{"name":"rails","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"rake","old_version":"13.3.0","new_version":"13.3.1","repository_url":"https://github.com/ruby/rake"},{"name":"rspec","old_version":"3.13.1","new_version":"3.13.2","repository_url":"https://github.com/rspec/rspec"},{"name":"bundler-audit","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/rubysec/bundler-audit"},{"name":"rubocop","old_version":"1.80.1","new_version":"1.82.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"actioncable","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"addressable","old_version":"2.8.7","new_version":"2.8.8","repository_url":"https://github.com/sporkmonger/addressable"},{"name":"benchmark","old_version":"0.4.1","new_version":"0.5.0","repository_url":"https://github.com/ruby/benchmark"},{"name":"bigdecimal","old_version":"3.2.2","new_version":"4.0.1","repository_url":"https://github.com/ruby/bigdecimal"},{"name":"cgi","old_version":"0.5.0","new_version":"0.5.1","repository_url":"https://github.com/ruby/cgi"},{"name":"concurrent-ruby","old_version":"1.3.5","new_version":"1.3.6","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"},{"name":"connection_pool","old_version":"2.5.4","new_version":"2.5.5","repository_url":"https://github.com/mperham/connection_pool"},{"name":"date","old_version":"3.4.1","new_version":"3.5.1","repository_url":"https://github.com/ruby/date"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"i18n","old_version":"1.14.7","new_version":"1.14.8","repository_url":"https://github.com/ruby-i18n/i18n"},{"name":"io-console","old_version":"0.8.1","new_version":"0.8.2","repository_url":"https://github.com/ruby/io-console"},{"name":"json","old_version":"2.13.2","new_version":"2.18.0","repository_url":"https://github.com/ruby/json"},{"name":"loofah","old_version":"2.24.1","new_version":"2.25.0","repository_url":"https://github.com/flavorjones/loofah"},{"name":"mail","old_version":"2.8.1","new_version":"2.9.0","repository_url":"https://github.com/mikel/mail"},{"name":"marcel","old_version":"1.0.4","new_version":"1.1.0","repository_url":"https://github.com/rails/marcel"},{"name":"minitest","old_version":"5.25.5","new_version":"5.27.0","repository_url":"https://github.com/minitest/minitest"},{"name":"net-imap","old_version":"0.5.10","new_version":"0.5.13","repository_url":"https://github.com/ruby/net-imap"},{"name":"nio4r","old_version":"2.7.4","new_version":"2.7.5","repository_url":"https://github.com/socketry/nio4r"},{"name":"nokogiri","old_version":"1.18.9","new_version":"1.18.10","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"parser","old_version":"3.3.9.0","new_version":"3.3.10.0","repository_url":"https://github.com/whitequark/parser"},{"name":"pp","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/ruby/pp"},{"name":"prism","old_version":"1.4.0","new_version":"1.7.0","repository_url":"https://github.com/ruby/prism"},{"name":"psych","old_version":"5.2.6","new_version":"5.3.1","repository_url":"https://github.com/ruby/psych"},{"name":"rack","old_version":"3.1.16","new_version":"3.2.4","repository_url":"https://github.com/rack/rack"},{"name":"rackup","old_version":"2.2.1","new_version":"2.3.1","repository_url":"https://github.com/rack/rackup"},{"name":"railties","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"rdoc","old_version":"6.14.2","new_version":"7.0.1","repository_url":"https://github.com/ruby/rdoc"},{"name":"regexp_parser","old_version":"2.11.2","new_version":"2.11.3","repository_url":"https://github.com/ammar/regexp_parser"},{"name":"reline","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/ruby/reline"},{"name":"rexml","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"rspec-core","old_version":"3.13.5","new_version":"3.13.6","repository_url":"https://github.com/rspec/rspec"},{"name":"rspec-mocks","old_version":"3.13.5","new_version":"3.13.7","repository_url":"https://github.com/rspec/rspec"},{"name":"rspec-support","old_version":"3.13.5","new_version":"3.13.6","repository_url":"https://github.com/rspec/rspec"},{"name":"rubocop-ast","old_version":"1.46.0","new_version":"1.48.0","repository_url":"https://github.com/rubocop/rubocop-ast"},{"name":"stringio","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/ruby/stringio"},{"name":"timeout","old_version":"0.4.3","new_version":"0.6.0","repository_url":"https://github.com/ruby/timeout"},{"name":"unicode-display_width","old_version":"3.1.5","new_version":"3.2.0","repository_url":"https://github.com/janlelis/unicode-display_width"},{"name":"unicode-emoji","old_version":"4.0.4","new_version":"4.2.0","repository_url":"https://github.com/janlelis/unicode-emoji"}],"path":null,"ecosystem":"rubygems"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the production-dependencies group with 54 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [irb](https://github.com/ruby/irb) | `1.15.2` | `1.16.0` |\n| [rails](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [rake](https://github.com/ruby/rake) | `13.3.0` | `13.3.1` |\n| [rspec](https://github.com/rspec/rspec) | `3.13.1` | `3.13.2` |\n| [bundler-audit](https://github.com/rubysec/bundler-audit) | `0.9.2` | `0.9.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.80.1` | `1.82.0` |\n| [actioncable](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionmailbox](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionmailer](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionpack](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actiontext](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionview](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activejob](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activemodel](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activerecord](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activestorage](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activesupport](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [addressable](https://github.com/sporkmonger/addressable) | `2.8.7` | `2.8.8` |\n| [benchmark](https://github.com/ruby/benchmark) | `0.4.1` | `0.5.0` |\n| [bigdecimal](https://github.com/ruby/bigdecimal) | `3.2.2` | `4.0.1` |\n| [cgi](https://github.com/ruby/cgi) | `0.5.0` | `0.5.1` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.5` | `1.3.6` |\n| [connection_pool](https://github.com/mperham/connection_pool) | `2.5.4` | `2.5.5` |\n| [date](https://github.com/ruby/date) | `3.4.1` | `3.5.1` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [i18n](https://github.com/ruby-i18n/i18n) | `1.14.7` | `1.14.8` |\n| [io-console](https://github.com/ruby/io-console) | `0.8.1` | `0.8.2` |\n| [json](https://github.com/ruby/json) | `2.13.2` | `2.18.0` |\n| [loofah](https://github.com/flavorjones/loofah) | `2.24.1` | `2.25.0` |\n| [mail](https://github.com/mikel/mail) | `2.8.1` | `2.9.0` |\n| [marcel](https://github.com/rails/marcel) | `1.0.4` | `1.1.0` |\n| [minitest](https://github.com/minitest/minitest) | `5.25.5` | `5.27.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.10` | `0.5.13` |\n| [nio4r](https://github.com/socketry/nio4r) | `2.7.4` | `2.7.5` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.9` | `1.18.10` |\n| [parser](https://github.com/whitequark/parser) | `3.3.9.0` | `3.3.10.0` |\n| [pp](https://github.com/ruby/pp) | `0.6.2` | `0.6.3` |\n| [prism](https://github.com/ruby/prism) | `1.4.0` | `1.7.0` |\n| [psych](https://github.com/ruby/psych) | `5.2.6` | `5.3.1` |\n| [rack](https://github.com/rack/rack) | `3.1.16` | `3.2.4` |\n| [rackup](https://github.com/rack/rackup) | `2.2.1` | `2.3.1` |\n| [railties](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [rdoc](https://github.com/ruby/rdoc) | `6.14.2` | `7.0.1` |\n| [regexp_parser](https://github.com/ammar/regexp_parser) | `2.11.2` | `2.11.3` |\n| [reline](https://github.com/ruby/reline) | `0.6.2` | `0.6.3` |\n| [rexml](https://github.com/ruby/rexml) | `3.4.2` | `3.4.4` |\n| [rspec-core](https://github.com/rspec/rspec) | `3.13.5` | `3.13.6` |\n| [rspec-mocks](https://github.com/rspec/rspec) | `3.13.5` | `3.13.7` |\n| [rspec-support](https://github.com/rspec/rspec) | `3.13.5` | `3.13.6` |\n| [rubocop-ast](https://github.com/rubocop/rubocop-ast) | `1.46.0` | `1.48.0` |\n| [stringio](https://github.com/ruby/stringio) | `3.1.7` | `3.2.0` |\n| [timeout](https://github.com/ruby/timeout) | `0.4.3` | `0.6.0` |\n| [unicode-display_width](https://github.com/janlelis/unicode-display_width) | `3.1.5` | `3.2.0` |\n| [unicode-emoji](https://github.com/janlelis/unicode-emoji) | `4.0.4` | `4.2.0` |\n\nUpdates `irb` from 1.15.2 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/irb/releases\"\u003eirb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--context-mode 5\u003c/code\u003e: evaluates inside Ruby::Box by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1142\"\u003eruby/irb#1142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid creating method objects unnecessarily when distinguishing between commands and statements. by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1138\"\u003eruby/irb#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow-source should not raise error even if line_no is wrong by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1145\"\u003eruby/irb#1145\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🛠 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin power_assert to v2 for Ruby 2.7 (v3 requires 3.1+) by \u003ca href=\"https://github.com/ima1zumi\"\u003e\u003ccode\u003e@​ima1zumi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1135\"\u003eruby/irb#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot; Pin power_assert to v2 for Ruby 2.7 (v3 requires 3.1+)\u0026quot; by \u003ca href=\"https://github.com/ima1zumi\"\u003e\u003ccode\u003e@​ima1zumi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1136\"\u003eruby/irb#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.13.1 to 2.13.2 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/ruby/irb/pull/1137\"\u003eruby/irb#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange platform mswin to nil by \u003ca href=\"https://github.com/ima1zumi\"\u003e\u003ccode\u003e@​ima1zumi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1139\"\u003eruby/irb#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test to check for UTF16LE/BE by \u003ca href=\"https://github.com/alexanderadam\"\u003e\u003ccode\u003e@​alexanderadam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1132\"\u003eruby/irb#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect usage for -w. It turns ON warnings, not OFF. by \u003ca href=\"https://github.com/zenspider\"\u003e\u003ccode\u003e@​zenspider\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1141\"\u003eruby/irb#1141\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/ruby/irb/pull/1143\"\u003eruby/irb#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5.0.1 to 6.0.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/ruby/irb/pull/1144\"\u003eruby/irb#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate rc-files documentation by \u003ca href=\"https://github.com/eval\"\u003e\u003ccode\u003e@​eval\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1113\"\u003eruby/irb#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.13.2 to 2.13.3 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/ruby/irb/pull/1147\"\u003eruby/irb#1147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 6.0.0 to 6.0.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/ruby/irb/pull/1146\"\u003eruby/irb#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecall Thread.pass just after Thread.stop 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/irb/pull/1148\"\u003eruby/irb#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.13.3 to 2.14.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/ruby/irb/pull/1149\"\u003eruby/irb#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 1.16.0 by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1150\"\u003eruby/irb#1150\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/zenspider\"\u003e\u003ccode\u003e@​zenspider\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1141\"\u003eruby/irb#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1148\"\u003eruby/irb#1148\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/irb/compare/v1.15.3...v1.16.0\"\u003ehttps://github.com/ruby/irb/compare/v1.15.3...v1.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.15.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all internal frames from a backtrace 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/irb/pull/1106\"\u003eruby/irb#1106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove prompt generating performance by caching prompt parts(%m, %M) by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1127\"\u003eruby/irb#1127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not save consecutive duplicate commands to history by \u003ca href=\"https://github.com/topalovic\"\u003e\u003ccode\u003e@​topalovic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1120\"\u003eruby/irb#1120\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle keyword local variables correctly by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1085\"\u003eruby/irb#1085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nil error on debugger prompt by \u003ca href=\"https://github.com/muno92\"\u003e\u003ccode\u003e@​muno92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1097\"\u003eruby/irb#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix methods defined with invalid encoding are not displayed in completion by \u003ca href=\"https://github.com/ksaito422\"\u003e\u003ccode\u003e@​ksaito422\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1101\"\u003eruby/irb#1101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix show_source command when obj.method is overrided by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1111\"\u003eruby/irb#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset IOGate.set_winch_handler when dancing ruby easter-egg terminates by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1124\"\u003eruby/irb#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UTF-16 autocompletion by \u003ca href=\"https://github.com/alexanderadam\"\u003e\u003ccode\u003e@​alexanderadam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1129\"\u003eruby/irb#1129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[DOC] Fix link 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/irb/pull/1112\"\u003eruby/irb#1112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🛠 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid intermediate array from split by \u003ca href=\"https://github.com/Maumagnaguagno\"\u003e\u003ccode\u003e@​Maumagnaguagno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1093\"\u003eruby/irb#1093\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/irb/commit/10ed4a777ba80457aa8075b36f3c904787c3fbde\"\u003e\u003ccode\u003e10ed4a7\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.0 (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/6d3306bbdb75686dd555be3e759f0580ed613cca\"\u003e\u003ccode\u003e6d3306b\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.13.3 to 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/a4d7be961a6dd62c3c0e85e6338b12f6f5e1f469\"\u003e\u003ccode\u003ea4d7be9\u003c/code\u003e\u003c/a\u003e call Thread.pass just after Thread.stop (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/1b3bcc3d0be728f6a055c642f920882a948d002c\"\u003e\u003ccode\u003e1b3bcc3\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/3b04bb3b8c86f833fa0e7838924a6c20af565538\"\u003e\u003ccode\u003e3b04bb3\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.13.2 to 2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/e204f8536feebd512ea162e698b0f9ea3c8a2325\"\u003e\u003ccode\u003ee204f85\u003c/code\u003e\u003c/a\u003e Update rc-files documentation (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1113\"\u003e#1113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/847d1ca9d189c6902a7f7beccc9132ce28b626b2\"\u003e\u003ccode\u003e847d1ca\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--context-mode 5\u003c/code\u003e: evaluates inside Ruby::Box (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/6d7ff966b377b559c210258cf3f5f36c2f76e98b\"\u003e\u003ccode\u003e6d7ff96\u003c/code\u003e\u003c/a\u003e Show-source should not raise error even if line_no is wrong (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/feeb7be6795271f51e5c3d75f45eacdb491a34fa\"\u003e\u003ccode\u003efeeb7be\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/0aad10b1b4622e8f764e3b9ec80f3f8c10049921\"\u003e\u003ccode\u003e0aad10b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/irb/compare/v1.15.2...v1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 7.2.2.2 to 7.2.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\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd7d30ea583def238a0d9c52150ae1aa4b88c007\"\u003e\u003ccode\u003efd7d30e\u003c/code\u003e\u003c/a\u003e Upgrade sigstore gem to 0.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/40e5415d3f35878f47a521779f291284428aaff5\"\u003e\u003ccode\u003e40e5415\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3245de17c04c21abdf3efc76a3bf21dc0d773033\"\u003e\u003ccode\u003e3245de1\u003c/code\u003e\u003c/a\u003e Add sigstore-cli gem to the releaser toolset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/35ad36a398b44d10817ae13ec61f68af30c47efe\"\u003e\u003ccode\u003e35ad36a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55969\"\u003e#55969\u003c/a\u003e from rails/fix-explain-tests-mysql-9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3690a3ab882476c5229c04c5ae993ba6fb469fc4\"\u003e\u003ccode\u003e3690a3a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55966\"\u003e#55966\u003c/a\u003e from alexanderadam/doc/remove_subclasses_documentat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/33f90433c535abc650b7de1e99fa3f5c1bd5313c\"\u003e\u003ccode\u003e33f9043\u003c/code\u003e\u003c/a\u003e Disable GCS tests in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ebd0cfc6750db6fe3909e8e2c4cfeabb195ead32\"\u003e\u003ccode\u003eebd0cfc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c4d7af0d6639d834c33296886befd6ee6d805038\"\u003e\u003ccode\u003ec4d7af0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55948\"\u003e#55948\u003c/a\u003e from zzak/debug-rails-new-docker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ed5ecc8bc9dac099188c454e813c96b2da133b8\"\u003e\u003ccode\u003e1ed5ecc\u003c/code\u003e\u003c/a\u003e Use NPM trusted publishing for our NPM packages\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.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.0 to 13.3.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/f0001c3eeada8220f2976170876c75d21ed0626f\"\u003e\u003ccode\u003ef0001c3\u003c/code\u003e\u003c/a\u003e v13.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/a644c808b98692cab776734ab92397df5e2de48b\"\u003e\u003ccode\u003ea644c80\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/483\"\u003e#483\u003c/a\u003e from luke-gru/fix_test_warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/2465ea541d6d721e3e03cd4a75594928032a8731\"\u003e\u003ccode\u003e2465ea5\u003c/code\u003e\u003c/a\u003e silence warnings during execution of rake tasks in Rakefile (ex: rake test)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/df25fb13f015c0f5ff8e7e46e71c28df33ebf34b\"\u003e\u003ccode\u003edf25fb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/610\"\u003e#610\u003c/a\u003e from pvdb/fix_testhelper_require\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/ec12ac969b708ba2488f02c164b8581f3f828922\"\u003e\u003ccode\u003eec12ac9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/635\"\u003e#635\u003c/a\u003e from nevans/deconstruct_keys-for-nil-keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/4664a69fcac064c1f727c8fc99f366958fa3a08b\"\u003e\u003ccode\u003e4664a69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/666\"\u003e#666\u003c/a\u003e from ruby/dependabot/github_actions/ruby/setup-ruby-1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/7a0bf15a81e7d3508e33de4d9398ae640bb50d68\"\u003e\u003ccode\u003e7a0bf15\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.265.0 to 1.266.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/b3ed7892ad1bc15aed7dbb4c02038d8088fad5f6\"\u003e\u003ccode\u003eb3ed789\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/665\"\u003e#665\u003c/a\u003e from ruby/dependabot/github_actions/ruby/setup-ruby-1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/1e7ef52f75be42cbe611e14d8efd7bcd62472a86\"\u003e\u003ccode\u003e1e7ef52\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.263.0 to 1.265.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/77225e17c0675d5d2adc40e267291ebffa0c38e0\"\u003e\u003ccode\u003e77225e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/664\"\u003e#664\u003c/a\u003e from ruby/dependabot/github_actions/ruby/setup-ruby-1...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/rake/compare/v13.3.0...v13.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec` from 3.13.1 to 3.13.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec/commit/ce5fe4f6521eb957f02e088a1c4c4f778a5c825e\"\u003e\u003ccode\u003ece5fe4f\u003c/code\u003e\u003c/a\u003e rspec-v3.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec/commit/1cb85173086166471482da39db32ba816b326ca6\"\u003e\u003ccode\u003e1cb8517\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/270\"\u003e#270\u003c/a\u003e from bquorning/fix-rspec-source_code_uri\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rspec/rspec/compare/rspec-v3.13.1...rspec-v3.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bundler-audit` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubysec/bundler-audit/releases\"\u003ebundler-audit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Ruby 3.4, 3.5, and 4.0.\u003c/li\u003e\n\u003cli\u003eAdded support for Bundler 4.x.\u003c/li\u003e\n\u003cli\u003eFixed typos in API documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCLI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that the \u003ccode\u003ebundler-audit check\u003c/code\u003e command honors the \u003ccode\u003eBUNDLER_AUDIT_DB\u003c/code\u003e environment variable.\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/rubysec/bundler-audit/blob/master/ChangeLog.md\"\u003ebundler-audit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e0.9.3 / 2025-11-28\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Ruby 3.4, 3.5, and 4.0.\u003c/li\u003e\n\u003cli\u003eAdded support for Bundler 4.x.\u003c/li\u003e\n\u003cli\u003eFixed typos in API documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCLI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that the \u003ccode\u003ebundler-audit check\u003c/code\u003e command honors the\n\u003ccode\u003eBUNDLER_AUDIT_DB\u003c/code\u003e environment variable.\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/rubysec/bundler-audit/commit/f8b06ebbefdd223e6eb21b9b258d75e6cfa9442a\"\u003e\u003ccode\u003ef8b06eb\u003c/code\u003e\u003c/a\u003e Updated the ChangeLog for 0.9.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/e4fb10a23229445b55fd0cbd2357b7e688519b1d\"\u003e\u003ccode\u003ee4fb10a\u003c/code\u003e\u003c/a\u003e Version bump to 0.9.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/34cd522d0a6c2e1957604d6f6c7239a9726b1b64\"\u003e\u003ccode\u003e34cd522\u003c/code\u003e\u003c/a\u003e Added Ruby 4.0 to the CI matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/22da9d769d3d98e7fa401764d2689e60dcf71efa\"\u003e\u003ccode\u003e22da9d7\u003c/code\u003e\u003c/a\u003e Added Ruby 3.5 to the CI matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/0c2afaf48aea1b852bce5a877c1d6ec866a6c1d4\"\u003e\u003ccode\u003e0c2afaf\u003c/code\u003e\u003c/a\u003e Require rubygems-tasks ~\u0026gt; 0.3 for Ruby 3.5 and 4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/309d20356a7ea435d0f92982b6fcb2a4bd57db66\"\u003e\u003ccode\u003e309d203\u003c/code\u003e\u003c/a\u003e Allow using bundler 4.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/d40dc751d0e789791751d6b62a1006daf8c150c4\"\u003e\u003ccode\u003ed40dc75\u003c/code\u003e\u003c/a\u003e Remove syntax highlighting from example output.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/91a912f69ce7df580731bc79aea64c7699b470b7\"\u003e\u003ccode\u003e91a912f\u003c/code\u003e\u003c/a\u003e Be consistent and only use markdown code fences.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/fc1bc0aa2cb0ea6a075daf39dd6cc02a3234266d\"\u003e\u003ccode\u003efc1bc0a\u003c/code\u003e\u003c/a\u003e Fixed typo in \u003ccode\u003e@return\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/276e0652d075686d66ca626705d4d475be697242\"\u003e\u003ccode\u003e276e065\u003c/code\u003e\u003c/a\u003e Update RubyGems in GitHub Actions CI (\u003ca href=\"https://redirect.github.com/rubysec/bundler-audit/issues/406\"\u003e#406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubysec/bundler-audit/compare/v0.9.2...v0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.80.1 to 1.82.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.82.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14655\"\u003e#14655\u003c/a\u003e: Add \u003ccode\u003eAllowRBSInlineAnnotation\u003c/code\u003e option to \u003ccode\u003eLayout/LineLength\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14569\"\u003e#14569\u003c/a\u003e: Add \u003ccode\u003eIncludedMacroPatterns\u003c/code\u003e configuration option to \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e for pattern-based macro method enforcement. (\u003ca href=\"https://github.com/mmenanno\"\u003e\u003ccode\u003e@​mmenanno\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14670\"\u003e#14670\u003c/a\u003e: Add new cop \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14644\"\u003e#14644\u003c/a\u003e: Support \u003ccode\u003eTargetRubyVersion 4.0\u003c/code\u003e (experimental). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14649\"\u003e#14649\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when there are literals in multiple branches. (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14678\"\u003e#14678\u003c/a\u003e: Fix an error when running deprecated \u003ccode\u003erake rubocop:auto_correct\u003c/code\u003e task. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14650\"\u003e#14650\u003c/a\u003e: Fix wrong autocorrect for \u003ccode\u003eLint/RedundantSplatExpansion\u003c/code\u003e when splatting a single literal. (\u003ca href=\"https://github.com/earlopain\"\u003e\u003ccode\u003e@​earlopain\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14703\"\u003e#14703\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/RescueEnsureAlignment\u003c/code\u003e when using self class definition. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14706\"\u003e#14706\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/NoReturnInBeginEndBlocks\u003c/code\u003e when assigning instance variable, class variable, global variable, or constant. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14715\"\u003e#14715\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when a guard clause follows a multiline heredoc in a parenthesized method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14667\"\u003e#14667\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a safe navigation method call is aligned. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14688\"\u003e#14688\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a numbered block or \u003ccode\u003eit\u003c/code\u003e block method call is aligned. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14699\"\u003e#14699\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when the receiver is used outside the singleton method definition scope. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14663\"\u003e#14663\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when multiline or xstring heredoc is used in method body. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10173\"\u003e#10173\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e when \u003ccode\u003eEnforcedStyleForMultiline\u003c/code\u003e is set to \u003ccode\u003econsistent_comma\u003c/code\u003e and a multiline braced hash argument appears after another argument. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14680\"\u003e#14680\u003c/a\u003e: Handle all \u003ccode\u003eOptionParser\u003c/code\u003e errors when running \u003ccode\u003erubocop\u003c/code\u003e with input that causes an error. (\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14658\"\u003e#14658\u003c/a\u003e: Fix incorrect behavior when \u003ccode\u003eLayout/LineLength\u003c/code\u003e is disabled. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14704\"\u003e#14704\u003c/a\u003e: Fix incorrect Position character value in LSP. (\u003ca href=\"https://github.com/tmtm\"\u003e\u003ccode\u003e@​tmtm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14619\"\u003e#14619\u003c/a\u003e: Store remote configuration caches in cache root. ([\u003ca href=\"https://github.com/Jack12816\"\u003e\u003ccode\u003e@​Jack12816\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14476\"\u003e#14476\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e to skip compact style definitions inside another class or module when \u003ccode\u003eEnforcedStyle: nested\u003c/code\u003e. ([\u003ca href=\"https://github.com/rscq\"\u003e\u003ccode\u003e@​rscq\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14281\"\u003e#14281\u003c/a\u003e: Update \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e with \u003ccode\u003eEnforcedStyleAlignWith: variable\u003c/code\u003e to handle conditionals inside \u003ccode\u003ebegin\u003c/code\u003e nodes properly. (\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14662\"\u003e#14662\u003c/a\u003e: Add autocorrection for \u003ccode\u003eLint/UselessOr\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14668\"\u003e#14668\u003c/a\u003e: Exclude \u003ccode\u003eSeverity\u003c/code\u003e from configuration parameters. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14684\"\u003e#14684\u003c/a\u003e: Make \u003ccode\u003eStyle/CaseEquality\u003c/code\u003e allow regexp case equality where the receiver is a regexp literal. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14645\"\u003e#14645\u003c/a\u003e: Change \u003ccode\u003eLint/CircularArgumentReference\u003c/code\u003e to detect offenses within long assignment chains. (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14642\"\u003e#14642\u003c/a\u003e: Make \u003ccode\u003eGemspec/RubyVersionGlobalsUsage\u003c/code\u003e aware of \u003ccode\u003eRuby::VERSION\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14695\"\u003e#14695\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e aware of \u003ccode\u003e# rbs_inline\u003c/code\u003e magic comment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10147\"\u003e#10147\u003c/a\u003e: Make \u003ccode\u003eLint/ElseLayout\u003c/code\u003e allow a single-line \u003ccode\u003eelse\u003c/code\u003e body in \u003ccode\u003ethen\u003c/code\u003e single-line conditional. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14661\"\u003e#14661\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantRequireStatement\u003c/code\u003e aware of \u003ccode\u003epathname\u003c/code\u003e when analyzing Ruby 4.0. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14698\"\u003e#14698\u003c/a\u003e: Make \u003ccode\u003eLint/UnreachableCode\u003c/code\u003e aware of singleton method redefinition. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14677\"\u003e#14677\u003c/a\u003e: Make \u003ccode\u003eStyle/RedundantArgument\u003c/code\u003e aware of \u003ccode\u003eto_i\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14660\"\u003e#14660\u003c/a\u003e: Rename \u003ccode\u003eIgnoreCopDirectives\u003c/code\u003e to \u003ccode\u003eAllowCopDirectives\u003c/code\u003e in \u003ccode\u003eLayout/LineLength\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e: Revert \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e, which added support for LSP positionEncoding 'utf-8' and 'utf-32' due to critical performance regression reports. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.82.0 (2025-12-17)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14655\"\u003e#14655\u003c/a\u003e: Add \u003ccode\u003eAllowRBSInlineAnnotation\u003c/code\u003e option to \u003ccode\u003eLayout/LineLength\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14569\"\u003e#14569\u003c/a\u003e: Add \u003ccode\u003eIncludedMacroPatterns\u003c/code\u003e configuration option to \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e for pattern-based macro method enforcement. ([\u003ca href=\"https://github.com/mmenanno\"\u003e\u003ccode\u003e@​mmenanno\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14670\"\u003e#14670\u003c/a\u003e: Add new cop \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14644\"\u003e#14644\u003c/a\u003e: Support \u003ccode\u003eTargetRubyVersion 4.0\u003c/code\u003e (experimental). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14649\"\u003e#14649\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when there are literals in multiple branches. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14678\"\u003e#14678\u003c/a\u003e: Fix an error when running deprecated \u003ccode\u003erake rubocop:auto_correct\u003c/code\u003e task. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14650\"\u003e#14650\u003c/a\u003e: Fix wrong autocorrect for \u003ccode\u003eLint/RedundantSplatExpansion\u003c/code\u003e when splatting a single literal. ([\u003ca href=\"https://github.com/earlopain\"\u003e\u003ccode\u003e@​earlopain\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14703\"\u003e#14703\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/RescueEnsureAlignment\u003c/code\u003e when using self class definition. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14706\"\u003e#14706\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/NoReturnInBeginEndBlocks\u003c/code\u003e when assigning instance variable, class variable, global variable, or constant. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14715\"\u003e#14715\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when a guard clause follows a multiline heredoc in a parenthesized method call. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14667\"\u003e#14667\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a safe navigation method call is aligned. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14688\"\u003e#14688\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a numbered block or \u003ccode\u003eit\u003c/code\u003e block method call is aligned. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14699\"\u003e#14699\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when the receiver is used outside the singleton method definition scope. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14663\"\u003e#14663\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when multiline or xstring heredoc is used in method body. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10173\"\u003e#10173\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e when \u003ccode\u003eEnforcedStyleForMultiline\u003c/code\u003e is set to \u003ccode\u003econsistent_comma\u003c/code\u003e and a multiline braced hash argument appears after another argument. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14680\"\u003e#14680\u003c/a\u003e: Handle all \u003ccode\u003eOptionParser\u003c/code\u003e errors when running \u003ccode\u003erubocop\u003c/code\u003e with input that causes an error. ([\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14658\"\u003e#14658\u003c/a\u003e: Fix incorrect behavior when \u003ccode\u003eLayout/LineLength\u003c/code\u003e is disabled. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14704\"\u003e#14704\u003c/a\u003e: Fix incorrect Position character value in LSP. ([\u003ca href=\"https://github.com/tmtm\"\u003e\u003ccode\u003e@​tmtm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14619\"\u003e#14619\u003c/a\u003e: Store remote configuration caches in cache root. ([\u003ca href=\"https://github.com/Jack12816\"\u003e\u003ccode\u003e@​Jack12816\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14476\"\u003e#14476\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e to skip compact style definitions inside another class or module when \u003ccode\u003eEnforcedStyle: nested\u003c/code\u003e. ([\u003ca href=\"https://github.com/rscq\"\u003e\u003ccode\u003e@​rscq\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14281\"\u003e#14281\u003c/a\u003e: Update \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e with \u003ccode\u003eEnforcedStyleAlignWith: variable\u003c/code\u003e to handle conditionals inside \u003ccode\u003ebegin\u003c/code\u003e nodes properly. ([\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14662\"\u003e#14662\u003c/a\u003e: Add autocorrection for \u003ccode\u003eLint/UselessOr\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14668\"\u003e#14668\u003c/a\u003e: Exclude \u003ccode\u003eSeverity\u003c/code\u003e from configuration parameters. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14684\"\u003e#14684\u003c/a\u003e: Make \u003ccode\u003eStyle/CaseEquality\u003c/code\u003e allow regexp case equality where the receiver is a regexp literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14645\"\u003e#14645\u003c/a\u003e: Change \u003ccode\u003eLint/CircularArgumentReference\u003c/code\u003e to detect offenses within long assignment chains. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14642\"\u003e#14642\u003c/a\u003e: Make \u003ccode\u003eGemspec/RubyVersionGlobalsUsage\u003c/code\u003e aware of \u003ccode\u003eRuby::VERSION\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14695\"\u003e#14695\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e aware of \u003ccode\u003e# rbs_inline\u003c/code\u003e magic comment. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10147\"\u003e#10147\u003c/a\u003e: Make \u003ccode\u003eLint/ElseLayout\u003c/code\u003e allow a single-line \u003ccode\u003eelse\u003c/code\u003e body in \u003ccode\u003ethen\u003c/code\u003e single-line conditional. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14661\"\u003e#14661\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantRequireStatement\u003c/code\u003e aware of \u003ccode\u003epathname\u003c/code\u003e when analyzing Ruby 4.0. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14698\"\u003e#14698\u003c/a\u003e: Make \u003ccode\u003eLint/UnreachableCode\u003c/code\u003e aware of singleton method redefinition. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14677\"\u003e#14677\u003c/a\u003e: Make \u003ccode\u003eStyle/RedundantArgument\u003c/code\u003e aware of \u003ccode\u003eto_i\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14660\"\u003e#14660\u003c/a\u003e: Rename \u003ccode\u003eIgnoreCopDirectives\u003c/code\u003e to \u003ccode\u003eAllowCopDirectives\u003c/code\u003e in \u003ccode\u003eLayout/LineLength\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e: Revert \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e, which added support for LSP positionEncoding 'utf-8' and 'utf-32' due to critical performance regression reports. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.81.7 (2025-10-31)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14597\"\u003e#14597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14621\"\u003e#14621\u003c/a\u003e: Fix an error for \u003ccode\u003eNaming/PredicateMethod\u003c/code\u003e when using an \u003ccode\u003ein\u003c/code\u003e pattern with empty parentheses body. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\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/rubocop/rubocop/commit/384aa2b4ed79bad806e0f884e1039dab56d3cfbf\"\u003e\u003ccode\u003e384aa2b\u003c/code\u003e\u003c/a\u003e Cut 1.82\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f8a84fa41beb247504ffc2c78dd1b49f1480a7db\"\u003e\u003ccode\u003ef8a84fa\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f8b40bc5f4a7998276fe6ff650d9cf55d8dfbb7d\"\u003e\u003ccode\u003ef8b40bc\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13854\"\u003e#13854\u003c/a\u003e (Old issue)] add push/pop logic for handle local enable/disable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/70f76b1ea0ae0eed8c8014f68f8667b7bd00349c\"\u003e\u003ccode\u003e70f76b1\u003c/code\u003e\u003c/a\u003e Add new cop Style/ModuleMemberExistenceCheck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/acbdbda132566818747f375b75111fc20340febe\"\u003e\u003ccode\u003eacbdbda\u003c/code\u003e\u003c/a\u003e Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9cc142e04f19802c4ce92ab33f18dd680601f895\"\u003e\u003ccode\u003e9cc142e\u003c/code\u003e\u003c/a\u003e Fix incorrect Position character value in LSP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5e07aa1001b41acc4594f81c2ebcf5de9be4dcfd\"\u003e\u003ccode\u003e5e07aa1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14712\"\u003e#14712\u003c/a\u003e from moznion/fix_escaped_single_quote\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/8f5b029fea2dc94fa75f2d8820058d29f0c7c8e7\"\u003e\u003ccode\u003e8f5b029\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14711\"\u003e#14711\u003c/a\u003e] Fix broken auto-correction in \u003ccode\u003eStyle/RedundantRegexpArgument\u003c/code\u003e rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/bcfdf5fadecf8126893fe2fb89f2634e7fe987c9\"\u003e\u003ccode\u003ebcfdf5f\u003c/code\u003e\u003c/a\u003e Add some specs for \u003ccode\u003eStyle/RedundantCondition\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2c9071d5764d728ad11e821dd338fe33371b5ca3\"\u003e\u003ccode\u003e2c9071d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14707\"\u003e#14707\u003c/a\u003e from koic/fix_false_negatives_for_lint_no_return_in...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.80.1...v1.82.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 7.2.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/97a940b21dc3f1ad53bc2cee4b2dafcf31d6ea8a\"\u003e\u003ccode\u003e97a940b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4157aaffc767cfe45a9539b79c290a5137b4ea6b\"\u003e\u003ccode\u003e4157aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/05bd95c36b04572f577eb06e1c96dfe6106da161\"\u003e\u003ccode\u003e05bd95c\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d19ccb2908cef464151fbe42003113379673fbf4\"\u003e\u003ccode\u003ed19ccb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1d8b402cd608462cfc0abd4d53ddab40f7a65af4\"\u003e\u003ccode\u003e1d8b402\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a40b1973731784c7fb24fdb7068acabe12a472d2\"\u003e\u003ccode\u003ea40b197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54531\"\u003e#54531\u003c/a\u003e from byroot/action-cable-upgrade-safari\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 7.2.2.2 to 7.2.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b5a9a37ecafd4add60e1677ca3c248b020909c6d\"\u003e\u003ccode\u003eb5a9a37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55809\"\u003e#55809\u003c/a\u003e from zzak/8-0-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3de277f5fb09b0f46f4b62b3f85c6c9a463ef58f\"\u003e\u003ccode\u003e3de277f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 7.2.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4f459cff2831d8beffb3114db99bd41f6202a5d6\"\u003e\u003ccode\u003e4f459cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1aa5cfef91923a6e41c1cd11f132797ed482fb8e\"\u003e\u003ccode\u003e1aa5cfe\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 7.2.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/40e5415d3f35878f47a521779f291284428aaff5\"\u003e\u003ccode\u003e40e5415\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ebd0cfc6750db6fe3909e8e2c4cfeabb195ead32\"\u003e\u003ccode\u003eebd0cfc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a0dee36d388c6fd2c2aa817566aedb59c6c1f9a7\"\u003e\u003ccode\u003ea0dee36\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/50390\"\u003e#50390\u003c/a\u003e from seanpdoyle/issue-50345\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b5a9a37ecafd4add60e1677ca3c248b020909c6d\"\u003e\u003ccode\u003eb5a9a37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55809\"\u003e#55809\u003c/a\u003e from zzak/8-0-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a510a3d216bbde3800a3019c4d9de595e058954b\"\u003e\u003ccode\u003ea510a3d\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a5750f6d20b471fd5749ebf61108a3dedb8698a1\"\u003e\u003ccode\u003ea5750f6\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/237f57301613e68bb2c9ac4115eb7004d6b4c557\"\u003e\u003ccode\u003e237f573\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/48e35d9a038d341db7de28b4a5da93d1f814c91d\"\u003e\u003ccode\u003e48e35d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0a41d35b7d1d7e2cdfe2152ecc3ca6b82d93692a\"\u003e\u003ccode\u003e0a41d35\u003c/code\u003e\u003c/a\u003e Action Pack: Allow rack 3.2.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 7.2.2.2 to 7.2.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d327a48668dc81c34590cbe79754d2ce84ed9ae6\"\u003e\u003ccode\u003ed327a48\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2fa7e4130b89a34440e21c2b63534d9a2f98416\"\u003e\u003ccode\u003eb2fa7e4\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 7.2.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handli...\n\n_Description has been truncated_","html_url":"https://github.com/patrick204nqh/dbwatcher/pull/79","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrick204nqh%2Fdbwatcher/issues/79","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/79/packages"},{"uuid":"3588391639","node_id":"PR_kwDOCJQbzs6xg9s9","number":8125,"state":"open","title":"build(deps): bump the bundler group with 37 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":"2025-11-04T23:03:29.000Z","updated_at":"2025-11-04T23:04:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler","update_count":37,"packages":[{"name":"rails","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sidekiq","old_version":"8.0.8","new_version":"8.0.9","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"grover","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/Studiosity/grover"},{"name":"govuk_design_system_formbuilder","old_version":"5.11.0","new_version":"5.13.0","repository_url":"https://github.com/x-govuk/govuk-form-builder"},{"name":"govuk-components","old_version":"5.11.3","new_version":"5.13.0","repository_url":"https://github.com/x-govuk/govuk-components"},{"name":"view_component","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"webmock","old_version":"3.26.0","new_version":"3.26.1","repository_url":"https://github.com/bblimke/webmock"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"actioncable","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1178.0","new_version":"1.1180.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.235.0","new_version":"3.236.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-kms","old_version":"1.115.0","new_version":"1.116.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"date","old_version":"3.4.1","new_version":"3.5.0","repository_url":"https://github.com/ruby/date"},{"name":"irb","old_version":"1.15.2","new_version":"1.15.3","repository_url":"https://github.com/ruby/irb"},{"name":"net-http","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/ruby/net-http"},{"name":"nio4r","old_version":"2.7.4","new_version":"2.7.5","repository_url":"https://github.com/socketry/nio4r"},{"name":"rack","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/rack/rack"},{"name":"railties","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"rake","old_version":"13.3.0","new_version":"13.3.1","repository_url":"https://github.com/ruby/rake"},{"name":"rdoc","old_version":"6.15.0","new_version":"6.15.1","repository_url":"https://github.com/ruby/rdoc"},{"name":"rspec-mocks","old_version":"3.13.6","new_version":"3.13.7","repository_url":"https://github.com/rspec/rspec"},{"name":"rubyzip","old_version":"3.2.1","new_version":"3.2.2","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"timeout","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/ruby/timeout"},{"name":"uri","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/ruby/uri"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 37 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `6.0.0` | `6.1.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.0.0` | `6.1.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `6.0.0` | `6.1.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.8` | `8.0.9` |\n| [grover](https://github.com/Studiosity/grover) | `1.2.3` | `1.2.4` |\n| [govuk_design_system_formbuilder](https://github.com/x-govuk/govuk-form-builder) | `5.11.0` | `5.13.0` |\n| [govuk-components](https://github.com/x-govuk/govuk-components) | `5.11.3` | `5.13.0` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.0.2` | `4.1.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.26.0` | `3.26.1` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionpack](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actiontext](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionview](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activejob](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activemodel](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activerecord](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activestorage](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activesupport](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1178.0` | `1.1180.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.235.0` | `3.236.0` |\n| [aws-sdk-kms](https://github.com/aws/aws-sdk-ruby) | `1.115.0` | `1.116.0` |\n| [date](https://github.com/ruby/date) | `3.4.1` | `3.5.0` |\n| [irb](https://github.com/ruby/irb) | `1.15.2` | `1.15.3` |\n| [net-http](https://github.com/ruby/net-http) | `0.6.0` | `0.7.0` |\n| [nio4r](https://github.com/socketry/nio4r) | `2.7.4` | `2.7.5` |\n| [rack](https://github.com/rack/rack) | `3.2.3` | `3.2.4` |\n| [railties](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [rake](https://github.com/ruby/rake) | `13.3.0` | `13.3.1` |\n| [rdoc](https://github.com/ruby/rdoc) | `6.15.0` | `6.15.1` |\n| [rspec-mocks](https://github.com/rspec/rspec) | `3.13.6` | `3.13.7` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `3.2.1` | `3.2.2` |\n| [timeout](https://github.com/ruby/timeout) | `0.4.3` | `0.4.4` |\n| [uri](https://github.com/ruby/uri) | `1.0.4` | `1.1.1` |\n\nUpdates `rails` from 8.0.3 to 8.1.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.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ce0ce1ca2da1d36cdc149a72a777a956ea45dc7\"\u003e\u003ccode\u003e0ce0ce1\u003c/code\u003e\u003c/a\u003e Upgrade sigstore gem to 0.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/271acd57d1430be8c92fbd8f19a2069e62425803\"\u003e\u003ccode\u003e271acd5\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7574698226c364ab98e69188539e2cf27517ef1f\"\u003e\u003ccode\u003e7574698\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56020\"\u003e#56020\u003c/a\u003e from harsh183/hd/getting_started/fix_line_num_typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/89cb7bff192ce71267ae76f38942ca8f306ce273\"\u003e\u003ccode\u003e89cb7bf\u003c/code\u003e\u003c/a\u003e Fix railties/CHANGELOG.md offense at 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7919bdab44688f1e7f121bc36a76169787cdfe60\"\u003e\u003ccode\u003e7919bda\u003c/code\u003e\u003c/a\u003e Restore header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f007f9ca53448379246a1901b213bd57955af26c\"\u003e\u003ccode\u003ef007f9c\u003c/code\u003e\u003c/a\u003e Disable SSL default config for out of the box Kamal deployments (\u003ca href=\"https://redirect.github.com/rails/rails/issues/56010\"\u003e#56010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/234b56973bb453bb50850a1be07a2fcad7331592\"\u003e\u003ccode\u003e234b569\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56008\"\u003e#56008\u003c/a\u003e from chaadow/fix_nesting_loop_rails\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/21a8742bb6bb5720f0e67d67fe26874598d1afbe\"\u003e\u003ccode\u003e21a8742\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55992\"\u003e#55992\u003c/a\u003e from jsharpify/jsharpify-reduce-deprecation-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a7ba88b04e935d2a9cbc205382d6cd7c514f425c\"\u003e\u003ccode\u003ea7ba88b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56001\"\u003e#56001\u003c/a\u003e from hachi8833/update_wishlists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 6.0.0 to 6.1.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.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for ActiveRecord binds in the log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2765\"\u003e#2765\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/getsentry/sentry-ruby/commit/1ca3afdadba4832239309f1b686943a73b2bf420\"\u003e\u003ccode\u003e1ca3afd\u003c/code\u003e\u003c/a\u003e release: 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/22d3ad48a58fe89ab871ef74d166de1edd041166\"\u003e\u003ccode\u003e22d3ad4\u003c/code\u003e\u003c/a\u003e chore(rails): refactor and fix test app setup (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/a1680da68589ab58f9027e4f8f85780e61e8414d\"\u003e\u003ccode\u003ea1680da\u003c/code\u003e\u003c/a\u003e Guard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2765\"\u003e#2765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/997ef4ed014e6fa5ac9ab0cb019c5c747f9d0480\"\u003e\u003ccode\u003e997ef4e\u003c/code\u003e\u003c/a\u003e chore(rails): 8.1 in test setup (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2764\"\u003e#2764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d643fcd510be9fa467d993e81e62d90751b81b36\"\u003e\u003ccode\u003ed643fcd\u003c/code\u003e\u003c/a\u003e feat(rails): add binds to ActiveRecord logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/582aeb9a242c000d2068942570fc0acb56f9baa8\"\u003e\u003ccode\u003e582aeb9\u003c/code\u003e\u003c/a\u003e chore(rails): remove 5.0 leftovers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.0.0...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.0.0 to 6.1.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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for ActiveRecord binds in the log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2765\"\u003e#2765\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/getsentry/sentry-ruby/commit/1ca3afdadba4832239309f1b686943a73b2bf420\"\u003e\u003ccode\u003e1ca3afd\u003c/code\u003e\u003c/a\u003e release: 6.1.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.0.0...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 6.0.0 to 6.1.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-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for ActiveRecord binds in the log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2765\"\u003e#2765\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/getsentry/sentry-ruby/commit/1ca3afdadba4832239309f1b686943a73b2bf420\"\u003e\u003ccode\u003e1ca3afd\u003c/code\u003e\u003c/a\u003e release: 6.1.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.0.0...6.1.0\"\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.8 to 8.0.9\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.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement idle Redis connection reaping, will be activated in 8.1 \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6663\"\u003e#6663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eSidekiq::Process\u003c/code\u003e API to provide capsule data. The \u003ccode\u003equeues\u003c/code\u003e and \u003ccode\u003eweights\u003c/code\u003e\ndata will be removed from Redis in Sidekiq 8.1, as this data can now be found in the\n\u003ccode\u003ecapsules\u003c/code\u003e element. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6295\"\u003e#6295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore bulk action buttons on Scheduled, Retry and Dead tabs [#6833, deve1212]\u003c/li\u003e\n\u003cli\u003eSupport logging additional job attributes [#6846, bschrag620]\u003c/li\u003e\n\u003cli\u003eFix display of long job args \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6836\"\u003e#6836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate development lifecycle (\u003ccode\u003edocs/sdlc.md\u003c/code\u003e) and security (\u003ccode\u003edocs/SECURITY.md\u003c/code\u003e) policy\ndocumentation for Sidekiq's current workflows\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/sidekiq/sidekiq/commit/32567d7cf2a465d93d69be2754d6f899ea655848\"\u003e\u003ccode\u003e32567d7\u003c/code\u003e\u003c/a\u003e changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/5fef41f4d290ac52435654dd846cd08277efef2b\"\u003e\u003ccode\u003e5fef41f\u003c/code\u003e\u003c/a\u003e prep for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/5d656d2449d94535f578875b46ddf490d6ccdbf8\"\u003e\u003ccode\u003e5d656d2\u003c/code\u003e\u003c/a\u003e Vulnerability policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c435e5ef8a1d1b007ee669835f7359a0bbe3a213\"\u003e\u003ccode\u003ec435e5e\u003c/code\u003e\u003c/a\u003e Implement idle redis connection reaping (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6664\"\u003e#6664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/3334ce8f765346d2d7333cf2293568037737bf1b\"\u003e\u003ccode\u003e3334ce8\u003c/code\u003e\u003c/a\u003e wordsmithing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/a5bfbc633299707108e1fa4b539009d7a3130f48\"\u003e\u003ccode\u003ea5bfbc6\u003c/code\u003e\u003c/a\u003e clarify commercial policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/be722014daf171b4fc4ed93d01a421d057a71acc\"\u003e\u003ccode\u003ebe72201\u003c/code\u003e\u003c/a\u003e formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/39fc90650fe8e3d9f859728bd71f62bf09980b9d\"\u003e\u003ccode\u003e39fc906\u003c/code\u003e\u003c/a\u003e first pass at sdlc policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/3a7baff4073fd326a146f3e10940036d21290f82\"\u003e\u003ccode\u003e3a7baff\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/2dcfcd51121c0c215514ef2435a92b000b193def\"\u003e\u003ccode\u003e2dcfcd5\u003c/code\u003e\u003c/a\u003e doc(changes)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.0.8...v8.0.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grover` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Studiosity/grover/releases\"\u003egrover's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude Node v24 in build suite by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/291\"\u003eStudiosity/grover#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the browser object to set cookies.  by \u003ca href=\"https://github.com/brendon\"\u003e\u003ccode\u003e@​brendon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/294\"\u003eStudiosity/grover#294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix removal of external spec dependency (httpstat.us offline) by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/298\"\u003eStudiosity/grover#298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 3.5.0-preview1 to build matrix by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/296\"\u003eStudiosity/grover#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Firefox browser by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/297\"\u003eStudiosity/grover#297\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/brendon\"\u003e\u003ccode\u003e@​brendon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/294\"\u003eStudiosity/grover#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Studiosity/grover/compare/v1.2.3...v1.2.4\"\u003ehttps://github.com/Studiosity/grover/compare/v1.2.3...v1.2.4\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/Studiosity/grover/blob/main/CHANGELOG.md\"\u003egrover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Studiosity/grover/blob/main/releases/tag/v1.2.4\"\u003e1.2,4\u003c/a\u003e - 2025-11-04\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/297\"\u003e#297\u003c/a\u003e Add support for browser option (Firefox) ([\u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e][])\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/Studiosity/grover/pull/294\"\u003e#294\u003c/a\u003e Handle deprecations in setCookie API ([\u003ca href=\"https://github.com/brendon\"\u003e\u003ccode\u003e@​brendon\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/Studiosity/grover/commit/f47af21c1192520ad6e98c05d9fde6e7f375ba57\"\u003e\u003ccode\u003ef47af21\u003c/code\u003e\u003c/a\u003e Release v1.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/8e7ce04a1dbd7576cddcd4b22dc107b815dfbfc5\"\u003e\u003ccode\u003e8e7ce04\u003c/code\u003e\u003c/a\u003e Add support for Firefox browser (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/52407a0e64b8bfcd7a8ab62e8bd295621215f402\"\u003e\u003ccode\u003e52407a0\u003c/code\u003e\u003c/a\u003e Add Ruby 3.5.0-preview1 to build matrix (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/d5eb9d8264000c1ba614a6085da6cee8889ede81\"\u003e\u003ccode\u003ed5eb9d8\u003c/code\u003e\u003c/a\u003e Fix removal of external spec dependency (httpstat.us offline) (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/ab0622ad7f5ffb87d13828e8dda8c675d63fffd7\"\u003e\u003ccode\u003eab0622a\u003c/code\u003e\u003c/a\u003e Handle deprecations in setCookie API (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/a243b8bc1171d2140a7fde5fab296781794dfad0\"\u003e\u003ccode\u003ea243b8b\u003c/code\u003e\u003c/a\u003e Include Node v24 in build suite (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/ef0992a2da6aeada6bdd6d761d334425a5c8baf3\"\u003e\u003ccode\u003eef0992a\u003c/code\u003e\u003c/a\u003e Expand apparmor README to explain some details further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/fc7eef54078a15fbf301e074bd343fe726ee9cc7\"\u003e\u003ccode\u003efc7eef5\u003c/code\u003e\u003c/a\u003e Update README with possible solutions for apparmor sandbox issues\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Studiosity/grover/compare/v1.2.3...v1.2.4\"\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 5.13.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 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/8706eb080e4adbec086c9df6b23c10d2392d67d9\"\u003e\u003ccode\u003e8706eb0\u003c/code\u003e\u003c/a\u003e Release version 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/4ee1610b38f2ad724ad35f46d4cd9f2ada8657fa\"\u003e\u003ccode\u003e4ee1610\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/586\"\u003e#586\u003c/a\u003e from x-govuk/govuk-frontend-5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/e4152cf35f1210fbf41a7f8c6326561ae34b08f2\"\u003e\u003ccode\u003ee4152cf\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1d621fec728b9ad3e68713d77fe418ff15f25938\"\u003e\u003ccode\u003e1d621fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/583\"\u003e#583\u003c/a\u003e from x-govuk/dependabot/npm_and_yarn/guide/sass-1.93.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/b719555a4517528f64ab8060176527ef16b8ab52\"\u003e\u003ccode\u003eb719555\u003c/code\u003e\u003c/a\u003e Bump sass from 1.91.0 to 1.93.2 in /guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/8220652d0d66644b84e71e73799526182e26e0dc\"\u003e\u003ccode\u003e8220652\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/578\"\u003e#578\u003c/a\u003e from x-govuk/dependabot/bundler/rubocop-govuk-tw-5.1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/d044ef7485504f87b5249d193cedfaa165e7dc5f\"\u003e\u003ccode\u003ed044ef7\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from ~\u0026gt; 5.0.1 to ~\u0026gt; 5.1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/c7a77bf283ae692234739d731466d4afea709d88\"\u003e\u003ccode\u003ec7a77bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/581\"\u003e#581\u003c/a\u003e from x-govuk/dependabot/bundler/rouge-tw-4.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/14991675d0b937d6d22fab58fc218678800292cd\"\u003e\u003ccode\u003e1499167\u003c/code\u003e\u003c/a\u003e Update rouge requirement from ~\u0026gt; 4.5.1 to ~\u0026gt; 4.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/865fd13d39821adac617aadccf6df3e3f70a4e47\"\u003e\u003ccode\u003e865fd13\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/569\"\u003e#569\u003c/a\u003e from x-govuk/dependabot/npm_and_yarn/guide/sass-1.89.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/compare/v5.11.0...v5.13.0\"\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 5.13.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 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/03365a4ae4c13d67f710e313d5420fb383cf6258\"\u003e\u003ccode\u003e03365a4\u003c/code\u003e\u003c/a\u003e Release version 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/4cc7cd132e65748edb74abf89da9c2ac40328c52\"\u003e\u003ccode\u003e4cc7cd1\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 5.13.0 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/7e2ac2f76d0bf2b9200ba4e59371fc617db6d724\"\u003e\u003ccode\u003e7e2ac2f\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/775c0185f0211fee2a02694058643b0458193ec3\"\u003e\u003ccode\u003e775c018\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.1.18 to = 5.1.20 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/19170ac2eb63f7bd1e271cf11f92c55891eb60dd\"\u003e\u003ccode\u003e19170ac\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.1.18 to = 5.1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/f5e44992352fcf026b7913d71dd78e4e4b2cea48\"\u003e\u003ccode\u003ef5e4499\u003c/code\u003e\u003c/a\u003e Add support for Rails 8.1 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/0cecbe14b468c8e7670a0dd8ca4c9bf85cb251cf\"\u003e\u003ccode\u003e0cecbe1\u003c/code\u003e\u003c/a\u003e Run tests against Rails 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/34265ad1e045782e2c0824c7f0a72eedc8a4f66a\"\u003e\u003ccode\u003e34265ad\u003c/code\u003e\u003c/a\u003e Replace ActiveSupport::Configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/ec204b7198a24dd932a600f3051e7811c0ab1035\"\u003e\u003ccode\u003eec204b7\u003c/code\u003e\u003c/a\u003e Bump view_component versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d6724bee5bc6866cf4637a2bfdcecea6a1abf0e9\"\u003e\u003ccode\u003ed6724be\u003c/code\u003e\u003c/a\u003e Use consistent brackets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-components/compare/v5.11.3...v5.13.0\"\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.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/viewcomponent/view_component/releases\"\u003eview_component's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Rails 8.1 support.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Lemuet\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Carwow to list of companies using ViewComponent.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eTom Lord\u003c/em\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/ViewComponent/view_component/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/ViewComponent/view_component/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\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.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Rails 8.1 support.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Lemuet\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Carwow to list of companies using ViewComponent.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eTom Lord\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeclare \u003ccode\u003eactionview\u003c/code\u003e as a \u003ccode\u003eview_component\u003c/code\u003e gem dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMichal Cichra\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/5ebefb32d1c492b858c68c7dc9046a1229fdf290\"\u003e\u003ccode\u003e5ebefb3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2472\"\u003e#2472\u003c/a\u003e from ViewComponent/release-4-1-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c541a78ebfaa4a4789b5f4b1abb54777bee0127\"\u003e\u003ccode\u003e9c541a7\u003c/code\u003e\u003c/a\u003e release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/044613756071110b51bc7fcf98df31be87b9f35f\"\u003e\u003ccode\u003e0446137\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2467\"\u003e#2467\u003c/a\u003e from ViewComponent/support-rails-head\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/177029d1016f8d6d40c121adf7b4e896b80f0df4\"\u003e\u003ccode\u003e177029d\u003c/code\u003e\u003c/a\u003e Keep benchmark on Rails 8.0 for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/129067b8d1bfac60dfe8c0930c4b425eee82da55\"\u003e\u003ccode\u003e129067b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into support-rails-head\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/24849b14a591abf718011a1be11afe8f61ca032b\"\u003e\u003ccode\u003e24849b1\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/2baa84e3c916bf6f697e8ea637a55696638665ab\"\u003e\u003ccode\u003e2baa84e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2468\"\u003e#2468\u003c/a\u003e from ViewComponent/fix-bug-replication-script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/879141ff1d350810e5b53d054c5b743657b19b6a\"\u003e\u003ccode\u003e879141f\u003c/code\u003e\u003c/a\u003e Relax allocations for Ruby 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d32c85627039cf107bae4f97491f64e8fd304c95\"\u003e\u003ccode\u003ed32c856\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/2fd86b76dc6d13907b22ce7f4f40628ac7e91407\"\u003e\u003ccode\u003e2fd86b7\u003c/code\u003e\u003c/a\u003e Alloooooocaaaaations!!!\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/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 `webmock` from 3.26.0 to 3.26.1\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.26.1\u003c/h1\u003e\n\u003cp\u003eFix compatibility with recent async-http versions\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThanks to [Mikhail Doronin](https://github.com/misdoro)\n\u003c/code\u003e\u003c/pre\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/bblimke/webmock/commit/56cb661b6aa2e711bcf3eb1e3a921a35727e7972\"\u003e\u003ccode\u003e56cb661\u003c/code\u003e\u003c/a\u003e Version 3.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/ea4cea3f01c7ec9019b7eae27a94f0f101e2ed26\"\u003e\u003ccode\u003eea4cea3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1109\"\u003e#1109\u003c/a\u003e from misdoro/duplicate_headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/c05fe472629da6ea6fc0ca065ce3bcafbfc56229\"\u003e\u003ccode\u003ec05fe47\u003c/code\u003e\u003c/a\u003e Split SAMPLE_REQUEST_HEADERS and SAMPLE_RESPONSE_HEADERS to be more realistic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/5f46ecabc3f4324ddde7ac4a948cc44145202828\"\u003e\u003ccode\u003e5f46eca\u003c/code\u003e\u003c/a\u003e Fix specs with recent Async-http versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/aa747ba5328a5fba500a16e54d3e1848106e1b0b\"\u003e\u003ccode\u003eaa747ba\u003c/code\u003e\u003c/a\u003e Run CI on pushes to all branches\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bblimke/webmock/compare/3.26.0...v3.26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shoulda-matchers` from 6.5.0 to 7.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/releases\"\u003eshoulda-matchers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/shoulda-matchers/blob/main/CHANGELOG.md\"\u003eshoulda-matchers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales\"\u003e\u003ccode\u003e@​matsales\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/thoughtbot/shoulda-matchers/commit/2a503318d6dfab04fa5d2b76ad8b790abda4e4df\"\u003e\u003ccode\u003e2a50331\u003c/code\u003e\u003c/a\u003e bump version to 7.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/3ae93e62da8f0ed305ae9c3e41f8a5530a2010a7\"\u003e\u003ccode\u003e3ae93e6\u003c/code\u003e\u003c/a\u003e hotfix: Add mutex_m gem dependency (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/731aaa71c56125c1e2eef9c6fe28d47963216d37\"\u003e\u003ccode\u003e731aaa7\u003c/code\u003e\u003c/a\u003e Bump version to 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/9069b5994ac0a2fdc48017d92b582e92d52e7aa8\"\u003e\u003ccode\u003e9069b59\u003c/code\u003e\u003c/a\u003e * chore: Update supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/99e36980b0a63607df1104e6e204a0fd8ecd2167\"\u003e\u003ccode\u003e99e3698\u003c/code\u003e\u003c/a\u003e chore: Add Rails 8.1 support (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/5c79d3bb75730ebf6e2615713972cd9722b102e5\"\u003e\u003ccode\u003e5c79d3b\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 7.0 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/7c46150cf1467cb951df4901c4a8fb3b8d22595a\"\u003e\u003ccode\u003e7c46150\u003c/code\u003e\u003c/a\u003e chore: Add support for Rails 8 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/49113db8498288d59e7e2b405ba2ebfb836cbed2\"\u003e\u003ccode\u003e49113db\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 6.1 and older (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/15560c7d4874f867e4fe1ecee5e275c0027ead42\"\u003e\u003ccode\u003e15560c7\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to `have_attac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/024c055885c792ed45923812e582facbe55ea8c6\"\u003e\u003ccode\u003e024c055\u003c/code\u003e\u003c/a\u003e chore: Update Ruby versions to latest stable releases (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/compare/v6.5.0...v7.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.3 to 8.1.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow passing composite channels to \u003ccode\u003eActionCable::Channel#stream_for\u003c/code\u003e – e.g. \u003ccode\u003estream_for [ group, group.owner ]\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ehey-leon\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting nil as subscription connection identifier for Redis.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNguyen Nguyen\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actioncable/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df9f43214c637c54773581c85c910b356b16fa44\"\u003e\u003ccode\u003edf9f432\u003c/code\u003e\u003c/a\u003e Allow methods starting with underscore to be action methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b92d3020c662ffe7c58908c0a2be70e20ebfe6a3\"\u003e\u003ccode\u003eb92d302\u003c/code\u003e\u003c/a\u003e Address \u003ccode\u003eCan not start microsoftedge 17.17134 (Windows 10)\u003c/code\u003e error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/207a254cedef2c381c2898bac960b91ce14ab3a7\"\u003e\u003ccode\u003e207a254\u003c/code\u003e\u003c/a\u003e ActiveSupport::Callbacks add a fast path when there is no callbacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/00dc4bf1f1413f34197f3c2be55a8fb8f3bf47af\"\u003e\u003ccode\u003e00dc4bf\u003c/code\u003e\u003c/a\u003e chore(deps-dev): update eslint from 8.57.1 to 9.24.0 with Flat Config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/80827ca7ff33ca3026f2c74fe8249ccc6f513318\"\u003e\u003ccode\u003e80827ca\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.beta1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/466777f499b16ea2cf948fbeebd9f4ec89ddc503\"\u003e\u003ccode\u003e466777f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55197\"\u003e#55197\u003c/a\u003e from hey-leon/composite-broadcasting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.3 to 8.1.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ereply_to_address\u003c/code\u003e extension method on \u003ccode\u003eMail::Message\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMr0grog\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actionmailbox/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/80827ca7ff33ca3026f2c74fe8249ccc6f513318\"\u003e\u003ccode\u003e80827ca\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.beta1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f3e06703619cf13de78638580c175b0586bfa201\"\u003e\u003ccode\u003ef3e0670\u003c/code\u003e\u003c/a\u003e Remove deprecated \u003ccode\u003e:azure\u003c/code\u003e storage service\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a99903d464662db6b114b07fa56e90204a3b4778\"\u003e\u003ccode\u003ea99903d\u003c/code\u003e\u003c/a\u003e Bump RuboCop to fix some transient failures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0ff636ae0dfb0890e189f22d7dee274f1b5321d\"\u003e\u003ccode\u003eb0ff636\u003c/code\u003e\u003c/a\u003e Handle Rack 3.2 \u003ccode\u003eunprocessable_{entity,content}\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f3f31eed37a76fbe7dba59acb756227b858b790f\"\u003e\u003ccode\u003ef3f31ee\u003c/code\u003e\u003c/a\u003e Move StrictWarnings to the tools directory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bc2e492a80f7e8cf43377dfaccdd9a027e60971e\"\u003e\u003ccode\u003ebc2e492\u003c/code\u003e\u003c/a\u003e Run tests with \u003ccode\u003e--profile\u003c/code\u003e on CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.3 to 8.1.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd structured events for Action Mailer:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eaction_mailer.delivered\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eaction_mailer.processed\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eGannon McGibbon\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003edeliver_all_later\u003c/code\u003e to enqueue multiple emails at once.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003euser_emails = User.all.map { |user| Notifier.welcome(user) }\nActionMailer.deliver_all_later(user_emails)\n\u003ch1\u003euse a custom queue\u003c/h1\u003e\n\u003cp\u003eActionMailer.deliver_all_later(user_emails, queue: :my_queue)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThis can greatly reduce the number of round-trips to the queue datastore.\nFor queue adapters that do not implement the \u003ccode\u003eenqueue_all\u003c/code\u003e method, we\nfall back to enqueuing email jobs indvidually.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actionmailer/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df9f43214c637c54773581c85c910b356b16fa44\"\u003e\u003ccode\u003edf9f432\u003c/code\u003e\u003c/a\u003e Allow methods starting with underscore to be action methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f77a1c3654afdf599fa927e7910d6e9c5e9df7cf\"\u003e\u003ccode\u003ef77a1c3\u003c/code\u003e\u003c/a\u003e Require 'rails' at the top of railltie files to ensure Rails is loaded first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6f9f62d49750fee6a45f3672e2227d5c4198a62\"\u003e\u003ccode\u003ed6f9f62\u003c/code\u003e\u003c/a\u003e Make the Structured Event Subscriber emit events in format that are useful fo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d2518fa2c974bfa97c378c9250c1256f83dff0de\"\u003e\u003ccode\u003ed2518fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55748\"\u003e#55748\u003c/a\u003e from Shopify/event_with_debug_helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1e776998ed4ac8a415c1173ad55157f14368d939\"\u003e\u003ccode\u003e1e77699\u003c/code\u003e\u003c/a\u003e Make all framework log subscribers API private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78857a394515c74e77db81da75f41f74d474b8e1\"\u003e\u003ccode\u003e78857a3\u003c/code\u003e\u003c/a\u003e Introduce with_debug_event_reporting to enable event reporter debug mode\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.3 to 8.1.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSubmit test requests using \u003ccode\u003eas: :html\u003c/code\u003e with \u003ccode\u003eContent-Type: x-www-form-urlencoded\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd link-local IP ranges to \u003ccode\u003eActionDispatch::RemoteIp\u003c/code\u003e default proxies.\u003c/p\u003e\n\u003cp\u003eLink-local addresses (\u003ccode\u003e169.254.0.0/16\u003c/code\u003e for IPv4 and \u003ccode\u003efe80::/10\u003c/code\u003e for IPv6)\nare now included in the default trusted proxy list, similar to private IP ranges.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdam Daniels\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eremote_ip\u003c/code\u003e will no longer ignore IPs in X-Forwarded-For headers if they\nare accompanied by port information.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDuncan Brown\u003c/em\u003e, \u003cem\u003ePrevenios Marinos\u003c/em\u003e, \u003cem\u003eMasafumi Koba\u003c/em\u003e, \u003cem\u003eAdam Daniels\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eaction_dispatch.verbose_redirect_logs\u003c/code\u003e setting that logs where redirects were called from.\u003c/p\u003e\n\u003cp\u003eSimilar to \u003ccode\u003eactive_record.verbose_query_logs\u003c/code\u003e and \u003ccode\u003eactive_job.verbose_enqueue_logs\u003c/code\u003e, this adds a line in your logs that shows where a redirect was called from.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRedirected to http://localhost:3000/posts/1\n↳ app/controllers/posts_controller.rb:32:in `block (2 levels) in create'\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eDennis Paagman\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd engine route filtering and better formatting in \u003ccode\u003ebin/rails routes\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAllow engine routes to be filterable in the routing inspector, and\nimprove formatting of engine routing output.\u003c/p\u003e\n\u003cp\u003eBefore:\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/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/271acd57d1430be8c92fbd8f19a2069e62425803\"\u003e\u003ccode\u003e271acd5\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df9f43214c637c54773581c85c910b356b16fa44\"\u003e\u003ccode\u003edf9f432\u003c/code\u003e\u003c/a\u003e Allow methods starting with underscore to be action methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f77a1c3654afdf599fa927e7910d6e9c5e9df7cf\"\u003e\u003ccode\u003ef77a1c3\u003c/code\u003e\u003c/a\u003e Require 'rails' at the top of railltie files to ensure Rails is loaded first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/62a109a53f1471274a150a267239441d0592f389\"\u003e\u003ccode\u003e62a109a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0777f23945aa498c280279b16091789b402daa64\"\u003e\u003ccode\u003e0777f23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55921\"\u003e#55921\u003c/a\u003e from skipkayhil/hm-ykpyzlmxovpttksv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4663af7e5c5263fa7b5ec5cdd529fc0c357ae037\"\u003e\u003ccode\u003e4663af7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55922\"\u003e#55922\u003c/a\u003e from Shopify/event_subscriber_additionss\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ca45ef19a745b1283ba3bf6b1076c998a3e559e4\"\u003e\u003ccode\u003eca45ef1\u003c/code\u003e\u003c/a\u003e Remove mention of raise_on_open_redirects from doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.3 to 8.1.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDe-couple \u003ccode\u003e@rails/actiontext/attachment_upload.js\u003c/code\u003e from \u003ccode\u003eTrix.Attachment\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eImplement \u003ccode\u003e@rails/actiontext/index.js\u003c/code\u003e with a \u003ccode\u003edirect-upload:progress\u003c/code\u003e event\nlisteners and \u003ccode\u003ePromise\u003c/code\u003e resolution.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCapture block content for form helper methods\u003c/p\u003e\n\u003cpre lang=\"erb\"\u003e\u003ccode\u003e\u0026lt;%= rich_textarea_tag :content, nil do %\u0026gt;\n  \u0026lt;h1\u0026gt;hello world\u0026lt;/h1\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;!-- \u0026lt;input type=\u0026quot;hidden\u0026quot; name=\u0026quot;content\u0026quot; id=\u0026quot;trix_input_1\u0026quot; value=\u0026quot;\u0026amp;lt;h1\u0026amp;gt;hello world\u0026amp;lt;/h1\u0026amp;gt;\u0026quot;/\u0026gt;\u0026lt;trix-editor … --\u0026gt;\n\u003cp\u003e\u0026lt;%= rich_textarea :message, :content, input: \u0026quot;trix_input_1\u0026quot; do %\u0026gt;\n\u0026lt;h1\u0026gt;hello world\u0026lt;/h1\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;!-- \u0026lt;input type=\u0026quot;hidden\u0026quot; name=\u0026quot;message[content]\u0026quot; id=\u0026quot;trix_input_1\u0026quot; value=\u0026quot;\u0026amp;lt;h1\u0026amp;gt;hello world\u0026amp;lt;/h1\u0026amp;gt;\u0026quot;/\u0026gt;\u0026lt;trix-editor … --\u0026gt;\u003c/p\u003e\n\u003cp\u003e\u0026lt;%= form_with model: Message.new do |form| %\u0026gt;\n\u0026lt;%= form.rich_textarea :content do %\u0026gt;\n\u0026lt;h1\u0026gt;hello world\u0026lt;/h1\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;!-- \u0026lt;form action=\u0026quot;/messages\u0026quot; accept-charset=\u0026quot;UTF-8\u0026quot; method=\u0026quot;post\u0026quot;\u0026gt;\u0026lt;input type=\u0026quot;hidden\u0026quot; name=\u0026quot;message[content]\u0026quot; id=\u0026quot;message_content_trix_input_message\u0026quot; value=\u0026quot;\u0026amp;lt;h1\u0026amp;gt;hello world\u0026amp;lt;/h1\u0026amp;gt;\u0026quot;/\u0026gt;\u0026lt;trix-editor … --\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGeneralize \u003ccode\u003e:rich_text_area\u003c/code\u003e Capybara selector\u003c/p\u003e\n\u003cp\u003ePrepare for more Action Text-capable WYSIWYG editors by making\n\u003ccode\u003e:rich_text_area\u003c/code\u003e rely on the presence of \u003ccode\u003e[role=\u0026quot;textbox\u0026quot;]\u003c/code\u003e and\n\u003ccode\u003e[contenteditable]\u003c/code\u003e HTML attributes rather than a \u003ccode\u003e\u0026lt;trix-editor\u0026gt;\u003c/code\u003e element.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eForward \u003ccode\u003efill_in_rich_text_area\u003c/code\u003e options to Capybara\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003efill_in_rich_textarea \u0026quot;Rich text editor\u0026quot;, id: \u0026quot;trix_editor_1\u0026quot;, with: \u0026quot;Hello world!\u0026quot;\n\u003c/code\u003e\u003c/pre\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/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5e231ae6548f1c5686f75e61832638937b134961\"\u003e\u003ccode\u003e5e231ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54914\"\u003e#54914\u003c/a\u003e from chaadow/fix_autoloaded_content_helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c624be05a5660772cbb6305862c3921b2f5788f\"\u003e\u003ccode\u003e8c624be\u003c/code\u003e\u003c/a\u003e De-couple \u003ccode\u003e@rails/actiontext/attachment_upload.js\u003c/code\u003e from \u003ccode\u003eTrix.Attachment\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9825b1ba8bda30635c4a1eddbb4c9794d1ba8a3b\"\u003e\u003ccode\u003e9825b1b\u003c/code\u003e\u003c/a\u003e Action Text: change tag helpers to accept optional blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cd49fa3e8058d4d37112abcf5eb6d85a9bfa4137\"\u003e\u003ccode\u003ecd49fa3\u003c/code\u003e\u003c/a\u003e Fix label \u003ccode\u003efor\u003c/code\u003e attribute missing form namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a20ee82fb14a955f55e49ae9db76779b250b3d9a\"\u003e\u003ccode\u003ea20ee82\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eimage_processing\u003c/code\u003e to the gemfile by default for active_storage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0a5faeaf71745b05d937b579a4da5bd90e0b6b58\"\u003e\u003ccode\u003e0a5faea\u003c/code\u003e\u003c/a\u003e Prevent stack overflow in ActionText PlaintextConversion (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55025\"\u003e#55025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.3 to 8.1.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-apply-for-legal-aid/pull/8125","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-apply-for-legal-aid/issues/8125","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8125/packages"},{"uuid":"3584528119","node_id":"PR_kwDOFOGO4c6xUMuv","number":1621,"state":"open","title":"Chore(deps): Bump the bundler group with 25 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":"2025-11-04T03:04:29.000Z","updated_at":"2025-11-04T03:04:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"bundler","update_count":25,"packages":[{"name":"rails","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"actioncable","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"date","old_version":"3.4.1","new_version":"3.5.0","repository_url":"https://github.com/ruby/date"},{"name":"erb","old_version":"5.1.1","new_version":"5.1.3","repository_url":"https://github.com/ruby/erb"},{"name":"formatador","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/geemus/formatador"},{"name":"irb","old_version":"1.15.2","new_version":"1.15.3","repository_url":"https://github.com/ruby/irb"},{"name":"nio4r","old_version":"2.7.4","new_version":"2.7.5","repository_url":"https://github.com/socketry/nio4r"},{"name":"rack","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/rack/rack"},{"name":"railties","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"rake","old_version":"13.3.0","new_version":"13.3.1","repository_url":"https://github.com/ruby/rake"},{"name":"rdoc","old_version":"6.15.0","new_version":"6.15.1","repository_url":"https://github.com/ruby/rdoc"},{"name":"rspec-mocks","old_version":"3.13.6","new_version":"3.13.7","repository_url":"https://github.com/rspec/rspec"},{"name":"timeout","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/ruby/timeout"},{"name":"uri","old_version":"1.0.4","new_version":"1.1.0","repository_url":"https://github.com/ruby/uri"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 25 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionpack](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actiontext](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionview](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activejob](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activemodel](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activerecord](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activestorage](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activesupport](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [date](https://github.com/ruby/date) | `3.4.1` | `3.5.0` |\n| [erb](https://github.com/ruby/erb) | `5.1.1` | `5.1.3` |\n| [formatador](https://github.com/geemus/formatador) | `1.2.1` | `1.2.2` |\n| [irb](https://github.com/ruby/irb) | `1.15.2` | `1.15.3` |\n| [nio4r](https://github.com/socketry/nio4r) | `2.7.4` | `2.7.5` |\n| [rack](https://github.com/rack/rack) | `3.2.3` | `3.2.4` |\n| [railties](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [rake](https://github.com/ruby/rake) | `13.3.0` | `13.3.1` |\n| [rdoc](https://github.com/ruby/rdoc) | `6.15.0` | `6.15.1` |\n| [rspec-mocks](https://github.com/rspec/rspec) | `3.13.6` | `3.13.7` |\n| [timeout](https://github.com/ruby/timeout) | `0.4.3` | `0.4.4` |\n| [uri](https://github.com/ruby/uri) | `1.0.4` | `1.1.0` |\n\nUpdates `rails` from 8.0.3 to 8.0.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.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/47a763581331ecfa56fb27beceda04bc6b5bb1f4\"\u003e\u003ccode\u003e47a7635\u003c/code\u003e\u003c/a\u003e Upgrade sigstore gem to 0.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2f3eb21bd6da9a4935314d4a0663c473c4d33700\"\u003e\u003ccode\u003e2f3eb21\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d96d698c3a78510d974f186d21e9b81d15b2a955\"\u003e\u003ccode\u003ed96d698\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56021\"\u003e#56021\u003c/a\u003e from harsh183/hd/getting_started_add_note_about_mai...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ddf2c97b27d25aa1e450545d59ff867df31253f\"\u003e\u003ccode\u003e0ddf2c9\u003c/code\u003e\u003c/a\u003e Delete test that now fails with new version of benchmark gem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6981fd2fbeadc8bc7db6547604cf2df13cb18a40\"\u003e\u003ccode\u003e6981fd2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55969\"\u003e#55969\u003c/a\u003e from rails/fix-explain-tests-mysql-9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/95a073edcda76d06037df3d1c4904759e5d58163\"\u003e\u003ccode\u003e95a073e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55966\"\u003e#55966\u003c/a\u003e from alexanderadam/doc/remove_subclasses_documentat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac0b8f0a6187d2d626f7c8c29dae41c8ff9217d1\"\u003e\u003ccode\u003eac0b8f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54720\"\u003e#54720\u003c/a\u003e from gregmolnar/guides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/82f2c96c394b0cf2c2208a7cbf8ebb4fa591ebd6\"\u003e\u003ccode\u003e82f2c96\u003c/code\u003e\u003c/a\u003e Disable GCS tests in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/94a28440cafca5c243821490956432b30d8a4fa4\"\u003e\u003ccode\u003e94a2844\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53068\"\u003e#53068\u003c/a\u003e from zzak/rails-probot-migration\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shoulda-matchers` from 6.5.0 to 7.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/releases\"\u003eshoulda-matchers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/shoulda-matchers/blob/main/CHANGELOG.md\"\u003eshoulda-matchers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales\"\u003e\u003ccode\u003e@​matsales\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/thoughtbot/shoulda-matchers/commit/2a503318d6dfab04fa5d2b76ad8b790abda4e4df\"\u003e\u003ccode\u003e2a50331\u003c/code\u003e\u003c/a\u003e bump version to 7.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/3ae93e62da8f0ed305ae9c3e41f8a5530a2010a7\"\u003e\u003ccode\u003e3ae93e6\u003c/code\u003e\u003c/a\u003e hotfix: Add mutex_m gem dependency (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/731aaa71c56125c1e2eef9c6fe28d47963216d37\"\u003e\u003ccode\u003e731aaa7\u003c/code\u003e\u003c/a\u003e Bump version to 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/9069b5994ac0a2fdc48017d92b582e92d52e7aa8\"\u003e\u003ccode\u003e9069b59\u003c/code\u003e\u003c/a\u003e * chore: Update supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/99e36980b0a63607df1104e6e204a0fd8ecd2167\"\u003e\u003ccode\u003e99e3698\u003c/code\u003e\u003c/a\u003e chore: Add Rails 8.1 support (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/5c79d3bb75730ebf6e2615713972cd9722b102e5\"\u003e\u003ccode\u003e5c79d3b\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 7.0 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/7c46150cf1467cb951df4901c4a8fb3b8d22595a\"\u003e\u003ccode\u003e7c46150\u003c/code\u003e\u003c/a\u003e chore: Add support for Rails 8 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/49113db8498288d59e7e2b405ba2ebfb836cbed2\"\u003e\u003ccode\u003e49113db\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 6.1 and older (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/15560c7d4874f867e4fe1ecee5e275c0027ead42\"\u003e\u003ccode\u003e15560c7\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to `have_attac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/024c055885c792ed45923812e582facbe55ea8c6\"\u003e\u003ccode\u003e024c055\u003c/code\u003e\u003c/a\u003e chore: Update Ruby versions to latest stable releases (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/compare/v6.5.0...v7.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.3 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b495d8b0979bbefb9a233a6e1682c87759a7d83\"\u003e\u003ccode\u003e2b495d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.3 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9ab450a023290ff50ed37c8561880a78dabbf19a\"\u003e\u003ccode\u003e9ab450a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55490\"\u003e#55490\u003c/a\u003e from Earlopain/bump-rubocop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.3 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.3 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/648192531f46da609b37f417d34f49af183b3e45\"\u003e\u003ccode\u003e6481925\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/243e606288bc6b13edf0d5c91ebbd90ab36bc430\"\u003e\u003ccode\u003e243e606\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/50390\"\u003e#50390\u003c/a\u003e from seanpdoyle/issue-50345\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9ab450a023290ff50ed37c8561880a78dabbf19a\"\u003e\u003ccode\u003e9ab450a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55490\"\u003e#55490\u003c/a\u003e from Earlopain/bump-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ab8e833991e493f57f03c10ee2a8a7fda218faae\"\u003e\u003ccode\u003eab8e833\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55820\"\u003e#55820\u003c/a\u003e from callmesangio/docs-fix-integrationtest-example\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.3 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.3 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2f3eb21bd6da9a4935314d4a0663c473c4d33700\"\u003e\u003ccode\u003e2f3eb21\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9ab450a023290ff50ed37c8561880a78dabbf19a\"\u003e\u003ccode\u003e9ab450a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55490\"\u003e#55490\u003c/a\u003e from Earlopain/bump-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/95bee6a4c8132b4caf53e073f7b01ce5cdeed4a6\"\u003e\u003ccode\u003e95bee6a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55738\"\u003e#55738\u003c/a\u003e from skipkayhil/hm-nkxzsnnrqqlyrotw\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.3 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.3 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.3 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2f3eb21bd6da9a4935314d4a0663c473c4d33700\"\u003e\u003ccode\u003e2f3eb21\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6981fd2fbeadc8bc7db6547604cf2df13cb18a40\"\u003e\u003ccode\u003e6981fd2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55969\"\u003e#55969\u003c/a\u003e from rails/fix-explain-tests-mysql-9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52347e0467445b350f482838da5bb503c155eb72\"\u003e\u003ccode\u003e52347e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55938\"\u003e#55938\u003c/a\u003e from aidanharan/truthy-condition-mssql\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d2826215f9c9c1fe2f1c91e292171a042be1e9c5\"\u003e\u003ccode\u003ed282621\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55925\"\u003e#55925\u003c/a\u003e from flavorjones/flavorjones/shard-swap-prohibition...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/511dbf2665746e54240c07b93b0d0ddc184873f9\"\u003e\u003ccode\u003e511dbf2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55907\"\u003e#55907\u003c/a\u003e from ruyrocha/fix/sqlite3-data-loss\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bf9219d62aed746260e853cebe98503c8c27cdd5\"\u003e\u003ccode\u003ebf9219d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55918\"\u003e#55918\u003c/a\u003e from baarde/with-bound-sql-literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/865bc776d039645bd4b7f2c826ab4e0aaadf51b6\"\u003e\u003ccode\u003e865bc77\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55332\"\u003e#55332\u003c/a\u003e from zzak/re-54882\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dee79c4a74723ce8016b2e96e3d6d5723f673aa6\"\u003e\u003ccode\u003edee79c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55778\"\u003e#55778\u003c/a\u003e from ianterrell/ianterrell/fix-autosave-changed-via...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.3 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/82f2c96c394b0cf2c2208a7cbf8ebb4fa591ebd6\"\u003e\u003ccode\u003e82f2c96\u003c/code\u003e\u003c/a\u003e Disable GCS tests in CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.3 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ddf2c97b27d25aa1e450545d59ff867df31253f\"\u003e\u003ccode\u003e0ddf2c9\u003c/code\u003e\u003c/a\u003e Delete test that now fails with new version of benchmark gem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3c7a8a8208221c3f01bc841a8f7015ea00e86427\"\u003e\u003ccode\u003e3c7a8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55864\"\u003e#55864\u003c/a\u003e from RicardoTrindade/patch-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/00e1dfa973ce121d767c299a02d05b028caf8b5c\"\u003e\u003ccode\u003e00e1dfa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55840\"\u003e#55840\u003c/a\u003e from zzak/asup-xml-mini-bigdecimal-float-precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f3148ba1cfc8482c7e9115bbc68a84bf62543c46\"\u003e\u003ccode\u003ef3148ba\u003c/code\u003e\u003c/a\u003e [ci skip] Fix \u003ccode\u003etransform_keys!\u003c/code\u003e example in 8.0.3 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2e0b72cc3bd5afdc663ddbf35246dde880024e2e\"\u003e\u003ccode\u003e2e0b72c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55808\"\u003e#55808\u003c/a\u003e from olivier-thatch/fix-enum-sole\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6aab6c8a1cd9c87e9cab9dddeeae119a4df65a11\"\u003e\u003ccode\u003e6aab6c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55794\"\u003e#55794\u003c/a\u003e from rails/fix-55513\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/edeeb0eeedce6e97c4186e75103c4d979da058f9\"\u003e\u003ccode\u003eedeeb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55786\"\u003e#55786\u003c/a\u003e from rails/fix-55776\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `date` from 3.4.1 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/date/releases\"\u003edate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify description of this library by \u003ca href=\"https://github.com/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/112\"\u003eruby/date#112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Fix broken rdoc-ref to the calendar page by \u003ca href=\"https://github.com/st0012\"\u003e\u003ccode\u003e@​st0012\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/113\"\u003eruby/date#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TruffleRuby in CI by \u003ca href=\"https://github.com/andrykonchin\"\u003e\u003ccode\u003e@​andrykonchin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/115\"\u003eruby/date#115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnclose dangling else in braces and fix -Wmisleading-indentation 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/date/pull/117\"\u003eruby/date#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd license files (COPYING, BSDL) to gem files by \u003ca href=\"https://github.com/seedot1234\"\u003e\u003ccode\u003e@​seedot1234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/121\"\u003eruby/date#121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows-2019 will be EOL at end of June, 2025 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/date/pull/124\"\u003eruby/date#124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlias value to take in old Ruby 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/date/pull/127\"\u003eruby/date#127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved workaround for assert_ractor 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/date/pull/128\"\u003eruby/date#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuppress warnings by gcc-13 with \u003ccode\u003e-Og\u003c/code\u003e 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/date/pull/129\"\u003eruby/date#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove references to FL_EXIVAR 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/date/pull/132\"\u003eruby/date#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Date#hash for large years by \u003ca href=\"https://github.com/Stranger6667\"\u003e\u003ccode\u003e@​Stranger6667\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/130\"\u003eruby/date#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: check for fixnum lower bound in m_ajd by \u003ca href=\"https://github.com/Stranger6667\"\u003e\u003ccode\u003e@​Stranger6667\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/131\"\u003eruby/date#131\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuppress maybe-uninitialized warning by gcc-13 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/date/pull/139\"\u003eruby/date#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not repeat conversions to string 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/date/pull/140\"\u003eruby/date#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest for the \u003ca href=\"https://redirect.github.com/ruby/date/issues/140\"\u003e#140\u003c/a\u003e 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/date/pull/141\"\u003eruby/date#141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDate._parse\u003c/code\u003e does not accept \u003ccode\u003enil\u003c/code\u003e 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/date/pull/142\"\u003eruby/date#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a workflow to sync commits to ruby/ruby by \u003ca href=\"https://github.com/k0kubun\"\u003e\u003ccode\u003e@​k0kubun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/143\"\u003eruby/date#143\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/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/112\"\u003eruby/date#112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/st0012\"\u003e\u003ccode\u003e@​st0012\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/113\"\u003eruby/date#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrykonchin\"\u003e\u003ccode\u003e@​andrykonchin\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/115\"\u003eruby/date#115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seedot1234\"\u003e\u003ccode\u003e@​seedot1234\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/121\"\u003eruby/date#121\u003c/a\u003e\u003c/li\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/date/pull/132\"\u003eruby/date#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667\"\u003e\u003ccode\u003e@​Stranger6667\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/130\"\u003eruby/date#130\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/date/compare/v3.4.1...v3.5.0\"\u003ehttps://github.com/ruby/date/compare/v3.4.1...v3.5.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/ruby/date/commit/c941d1a8a88ead5633679d13618217aa83a455a0\"\u003e\u003ccode\u003ec941d1a\u003c/code\u003e\u003c/a\u003e Need to compile before release-gem for JRuby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/d535f7e85fbb8841e0b1cd363b4497b195ebe110\"\u003e\u003ccode\u003ed535f7e\u003c/code\u003e\u003c/a\u003e v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/b703fcb45036c59436af9d684558ce5cf1dc75f6\"\u003e\u003ccode\u003eb703fcb\u003c/code\u003e\u003c/a\u003e Update the latest versions of actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/af863b54f33c40be90fe8cc841202ec53b27a43e\"\u003e\u003ccode\u003eaf863b5\u003c/code\u003e\u003c/a\u003e Add a workflow to sync commits to ruby/ruby (\u003ca href=\"https://redirect.github.com/ruby/date/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/545066ca28b2a6536e6d58a4e2bdb0653ec82caa\"\u003e\u003ccode\u003e545066c\u003c/code\u003e\u003c/a\u003e \u003ccode\u003eDate._parse\u003c/code\u003e does not accept \u003ccode\u003enil\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/4f7b6c9b421eacd74c1f34ddd482f3b7f002d316\"\u003e\u003ccode\u003e4f7b6c9\u003c/code\u003e\u003c/a\u003e Test for the \u003ca href=\"https://redirect.github.com/ruby/date/issues/140\"\u003e#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/159e1ebb7fcd7d06d699d51f713637ee9c3cf406\"\u003e\u003ccode\u003e159e1eb\u003c/code\u003e\u003c/a\u003e Do not repeat conversions to string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/5d48e5d1b8c65ce5551565cbca5f735e96d6275c\"\u003e\u003ccode\u003e5d48e5d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/date/issues/138\"\u003e#138\u003c/a\u003e from ruby/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/0c8e5a68450e8421604e852e5f2630f59511933a\"\u003e\u003ccode\u003e0c8e5a6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/date/issues/139\"\u003e#139\u003c/a\u003e from nobu/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/afaa4a997b45c8318b66a7b7ab30848793c01d99\"\u003e\u003ccode\u003eafaa4a9\u003c/code\u003e\u003c/a\u003e Suppress maybe-uninitialized warning by gcc-13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/date/compare/v3.4.1...v3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `erb` from 5.1.1 to 5.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/erb/releases\"\u003eerb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ruby/erb/compare/v5.1.2...v5.1.3\"\u003ehttps://github.com/ruby/erb/compare/v5.1.2...v5.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor html_escape by \u003ca href=\"https://github.com/noteflakes\"\u003e\u003ccode\u003e@​noteflakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/erb/pull/88\"\u003eruby/erb#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echangelog_uri\u003c/code\u003e to spec metadata 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/erb/pull/89\"\u003eruby/erb#89\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/jgarber623\"\u003e\u003ccode\u003e@​jgarber623\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/erb/pull/89\"\u003eruby/erb#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/ruby/erb/compare/v5.1.1...v5.1.2\"\u003ehttps://github.com/ruby/erb/compare/v5.1.1...v5.1.2\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/ruby/erb/blob/master/NEWS.md\"\u003eerb's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease v5.1.2 with trusted publishing for JRuby\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003echangelog_uri\u003c/code\u003e to spec metadata \u003ca href=\"https://redirect.github.com/ruby/erb/pull/89\"\u003eruby/erb#89\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/ruby/erb/commit/e8d382a83e899d21621e50fd27ade67ade1c1be5\"\u003e\u003ccode\u003ee8d382a\u003c/code\u003e\u003c/a\u003e Version 5.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/ae5bc380b9adf6ca0fbbf7f4f67d8695541dd646\"\u003e\u003ccode\u003eae5bc38\u003c/code\u003e\u003c/a\u003e Publish a gem for JRuby as well\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/daa0e8712f41ba088b9af63cffd2328aefe6548b\"\u003e\u003ccode\u003edaa0e87\u003c/code\u003e\u003c/a\u003e Version 5.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/fa6a2c9f07ca47a614d7dcf6ecb71d2dc39287af\"\u003e\u003ccode\u003efa6a2c9\u003c/code\u003e\u003c/a\u003e Add a workflow for trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/85a4f10332a6b25b7b807a67447bb9bbfc00f3c3\"\u003e\u003ccode\u003e85a4f10\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003echangelog_uri\u003c/code\u003e to spec metadata (\u003ca href=\"https://redirect.github.com/ruby/erb/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/c231ced3f4c1b6e1b2a41215a45d4df54f44cb10\"\u003e\u003ccode\u003ec231ced\u003c/code\u003e\u003c/a\u003e html_escape: refactor redundant if (\u003ca href=\"https://redirect.github.com/ruby/erb/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ruby/erb/compare/v5.1.1...v5.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `formatador` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geemus/formatador/blob/master/changelog.txt\"\u003eformatador's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.2.2 10/28/25\u003c/h1\u003e\n\u003cp\u003eadd faint\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/geemus/formatador/commit/6cbf36083a8acde5ccbe90e08f2229d6ffe63b42\"\u003e\u003ccode\u003e6cbf360\u003c/code\u003e\u003c/a\u003e Release 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geemus/formatador/commit/9dd7df2195e9a27b2de54b90dfffe56ef8572dda\"\u003e\u003ccode\u003e9dd7df2\u003c/code\u003e\u003c/a\u003e v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geemus/formatador/commit/53aaef72936e377ac5a07dafcb1720ae5ba67ec9\"\u003e\u003ccode\u003e53aaef7\u003c/code\u003e\u003c/a\u003e add faint\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geemus/formatador/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 `irb` from 1.15.2 to 1.15.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/irb/releases\"\u003eirb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.15.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all internal frames from a backtrace 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/irb/pull/1106\"\u003eruby/irb#1106\u003c/a\u003e\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/legal-framework-api/pull/1621","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flegal-framework-api/issues/1621","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1621/packages"},{"uuid":"3575905150","node_id":"PR_kwDOGPTOoc6w4heJ","number":1476,"state":"open","title":"ui-dev: bump actioncable from 7.2.2.2 to 7.2.3 in /server/src/main/webapp/WEB-INF/rails","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":"2025-10-31T18:02:26.000Z","updated_at":"2025-10-31T18:02:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"ui-dev","packages":[{"name":"actioncable","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"}],"path":"/server/src/main/webapp/WEB-INF/rails","ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 7.2.2.2 to 7.2.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/97a940b21dc3f1ad53bc2cee4b2dafcf31d6ea8a\"\u003e\u003ccode\u003e97a940b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4157aaffc767cfe45a9539b79c290a5137b4ea6b\"\u003e\u003ccode\u003e4157aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/05bd95c36b04572f577eb06e1c96dfe6106da161\"\u003e\u003ccode\u003e05bd95c\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d19ccb2908cef464151fbe42003113379673fbf4\"\u003e\u003ccode\u003ed19ccb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1d8b402cd608462cfc0abd4d53ddab40f7a65af4\"\u003e\u003ccode\u003e1d8b402\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a40b1973731784c7fb24fdb7068acabe12a472d2\"\u003e\u003ccode\u003ea40b197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54531\"\u003e#54531\u003c/a\u003e from byroot/action-cable-upgrade-safari\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.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=actioncable\u0026package-manager=bundler\u0026previous-version=7.2.2.2\u0026new-version=7.2.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/v0rts/gocd/pull/1476","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/v0rts%2Fgocd/issues/1476","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1476/packages"},{"uuid":"3569106570","node_id":"PR_kwDOAOdBTs6wiS73","number":13930,"state":"closed","title":"ui-dev: bump actioncable from 7.2.2.2 to 7.2.3 in /server/src/main/webapp/WEB-INF/rails","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T06:30:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-30T06:25:06.000Z","updated_at":"2025-10-30T06:30:30.000Z","time_to_close":322,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"ui-dev","packages":[{"name":"actioncable","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"}],"path":"/server/src/main/webapp/WEB-INF/rails","ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 7.2.2.2 to 7.2.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/97a940b21dc3f1ad53bc2cee4b2dafcf31d6ea8a\"\u003e\u003ccode\u003e97a940b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4157aaffc767cfe45a9539b79c290a5137b4ea6b\"\u003e\u003ccode\u003e4157aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/05bd95c36b04572f577eb06e1c96dfe6106da161\"\u003e\u003ccode\u003e05bd95c\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d19ccb2908cef464151fbe42003113379673fbf4\"\u003e\u003ccode\u003ed19ccb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1d8b402cd608462cfc0abd4d53ddab40f7a65af4\"\u003e\u003ccode\u003e1d8b402\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a40b1973731784c7fb24fdb7068acabe12a472d2\"\u003e\u003ccode\u003ea40b197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54531\"\u003e#54531\u003c/a\u003e from byroot/action-cable-upgrade-safari\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.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=actioncable\u0026package-manager=bundler\u0026previous-version=7.2.2.2\u0026new-version=7.2.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/gocd/gocd/pull/13930","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocd%2Fgocd/issues/13930","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13930/packages"},{"uuid":"3564037808","node_id":"PR_kwDOAC7Aw86wRbbr","number":3820,"state":"closed","title":":arrow_up: Bump actioncable from 8.0.3 to 8.0.4","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-10-29T02:08:41.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-29T02:05:56.000Z","updated_at":"2025-10-29T02:08:43.000Z","time_to_close":165,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":":arrow_up: Bump","packages":[{"name":"actioncable","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.3 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b495d8b0979bbefb9a233a6e1682c87759a7d83\"\u003e\u003ccode\u003e2b495d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.3\u0026new-version=8.0.4)](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)\nDependabot will merge this PR once CI passes on it, as requested by @pglombardo.\n\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/pglombardo/PasswordPusher/pull/3820","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pglombardo%2FPasswordPusher/issues/3820","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3820/packages"},{"uuid":"3540002988","node_id":"PR_kwDOKvRkY86vBc6p","number":366,"state":"closed","title":"Bump actioncable from 8.0.3 to 8.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-22T14:51:36.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-22T09:33:53.000Z","updated_at":"2025-10-22T14:51:38.000Z","time_to_close":19063,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"actioncable","old_version":"8.0.3","new_version":"8.1.0","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.3 to 8.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated passing a Time object to \u003ccode\u003eTime#since\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eBenchmark.ms\u003c/code\u003e method. It is now defined in the \u003ccode\u003ebenchmark\u003c/code\u003e gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated addition for \u003ccode\u003eTime\u003c/code\u003e instances with \u003ccode\u003eActiveSupport::TimeWithZone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated support for \u003ccode\u003eto_time\u003c/code\u003e to preserve the system local time. It will now always preserve the receiver\ntimezone.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate \u003ccode\u003econfig.active_support.to_time_preserves_timezone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStandardize event name formatting in \u003ccode\u003eassert_event_reported\u003c/code\u003e error messages.\u003c/p\u003e\n\u003cp\u003eThe event name in failure messages now uses \u003ccode\u003e.inspect\u003c/code\u003e (e.g., \u003ccode\u003ename: \u0026quot;user.created\u0026quot;\u003c/code\u003e)\nto match \u003ccode\u003eassert_events_reported\u003c/code\u003e and provide type clarity between strings and symbols.\nThis only affects tests that assert on the failure message format itself.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGeorge Ma\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003econfig.active_support.escape_js_separators_in_json\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIntroduce a new framework default to skip escaping LINE SEPARATOR (U+2028) and PARAGRAPH SEPARATOR (U+2029) in JSON.\u003c/p\u003e\n\u003cp\u003eHistorically these characters were not valid inside JavaScript literal strings but that changed in ECMAScript 2019.\nAs such it's no longer a concern in modern browsers: \u003ca href=\"https://caniuse.com/mdn-javascript_builtins_json_json_superset\"\u003ehttps://caniuse.com/mdn-javascript_builtins_json_json_superset\u003c/a\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/rails/rails/blob/v8.1.0/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow passing composite channels to \u003ccode\u003eActionCable::Channel#stream_for\u003c/code\u003e – e.g. \u003ccode\u003estream_for [ group, group.owner ]\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ehey-leon\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting nil as subscription connection identifier for Redis.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNguyen Nguyen\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actioncable/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b92d3020c662ffe7c58908c0a2be70e20ebfe6a3\"\u003e\u003ccode\u003eb92d302\u003c/code\u003e\u003c/a\u003e Address \u003ccode\u003eCan not start microsoftedge 17.17134 (Windows 10)\u003c/code\u003e error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/207a254cedef2c381c2898bac960b91ce14ab3a7\"\u003e\u003ccode\u003e207a254\u003c/code\u003e\u003c/a\u003e ActiveSupport::Callbacks add a fast path when there is no callbacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/00dc4bf1f1413f34197f3c2be55a8fb8f3bf47af\"\u003e\u003ccode\u003e00dc4bf\u003c/code\u003e\u003c/a\u003e chore(deps-dev): update eslint from 8.57.1 to 9.24.0 with Flat Config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/80827ca7ff33ca3026f2c74fe8249ccc6f513318\"\u003e\u003ccode\u003e80827ca\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.beta1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/466777f499b16ea2cf948fbeebd9f4ec89ddc503\"\u003e\u003ccode\u003e466777f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55197\"\u003e#55197\u003c/a\u003e from hey-leon/composite-broadcasting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ff1aa7c65f99446778ffa146e1d8ef89dd1a45f4\"\u003e\u003ccode\u003eff1aa7c\u003c/code\u003e\u003c/a\u003e add to ActionCable changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9a10a82fde88e4171f7231078d8064f68f832614\"\u003e\u003ccode\u003e9a10a82\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a6faaf35f9e57077d74f4a99f3429d40555177f1\"\u003e\u003ccode\u003ea6faaf3\u003c/code\u003e\u003c/a\u003e add additional test cases\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.3\u0026new-version=8.1.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/davidrunger/runger_config/pull/366","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrunger%2Frunger_config/issues/366","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/366/packages"},{"uuid":"2894310119","node_id":"PR_kwDNQRvOrIOq5w","number":349,"state":"closed","title":"Bump the ruby-deps group across 4 directories with 27 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-07T14:59:39.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-07T14:55:33.000Z","updated_at":"2025-10-07T14:59:39.000Z","time_to_close":246,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-deps","update_count":27,"packages":[{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rexml","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"rubyzip","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rails","old_version":"7.2.2.2","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"actioncable","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailbox","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailer","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionpack","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actiontext","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionview","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activejob","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activemodel","old_version":"7.2.2.2","new_version":"8.0.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-deps group with 1 update in the / directory: [rack](https://github.com/rack/rack).\nBumps the ruby-deps group with 3 updates in the /examples/camping directory: [rack](https://github.com/rack/rack), [rexml](https://github.com/ruby/rexml) and [rubyzip](https://github.com/rubyzip/rubyzip).\nBumps the ruby-deps group with 2 updates in the /examples/rails7 directory: [rack](https://github.com/rack/rack) and [rails](https://github.com/rails/rails).\nBumps the ruby-deps group with 2 updates in the /examples/sinatra directory: [rack](https://github.com/rack/rack) and [sinatra](https://github.com/sinatra/sinatra).\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\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.3 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\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\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\u003eSee full diff in \u003ca href=\"https://github.com/ruby/rexml/compare/v3.4.3...v3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubyzip` from 3.1.0 to 3.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyzip/rubyzip/releases\"\u003erubyzip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.1\u003c/h2\u003e\n\u003cp\u003eVersion 3.1.1\u003c/p\u003e\n\u003cp\u003eThe 3.1.x line adds AES decryption.\u003c/p\u003e\n\u003cp\u003e⚠️ There are breaking changes in the 3.x series ⚠️\u003c/p\u003e\n\u003cp\u003ePlease see the README and \u003ca href=\"https://github.com/rubyzip/rubyzip/wiki/Updating-to-version-3.x\"\u003eUpdating to version 3.x\u003c/a\u003e in the wiki for help upgrading from version 2.4.x to version 3.x.\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/rubyzip/rubyzip/blob/main/Changelog.md\"\u003erubyzip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.1 (2025-09-26)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the IO pipeline when decompressing. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/649\"\u003e#649\u003c/a\u003e (which also fixes \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTooling/internal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the \u003ccode\u003eDecryptedIo\u003c/code\u003e class with various updates and optimizations.\u003c/li\u003e\n\u003cli\u003eRemove the \u003ccode\u003eNullDecrypter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003eProperly convert the test suite to use minitest.\u003c/li\u003e\n\u003cli\u003eMove all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003eUpdates to the Actions CI, including new OS versions.\u003c/li\u003e\n\u003cli\u003eUpdate rubocop versions and fix resultant cop failures. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/646\"\u003e#646\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/rubyzip/rubyzip/commit/f87340db528531e5e96b13219bf7651551c43f5a\"\u003e\u003ccode\u003ef87340d\u003c/code\u003e\u003c/a\u003e Update version number and Changelog for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/813d96da709af363c32bc46ca8b293bb1d9dd9b3\"\u003e\u003ccode\u003e813d96d\u003c/code\u003e\u003c/a\u003e Add a Rubocop badge to the README.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/61c25b021a80c2309ea408619c2491b807a11fa9\"\u003e\u003ccode\u003e61c25b0\u003c/code\u003e\u003c/a\u003e Reduce the number of YJIT test runs in CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/69dcb8e202e64a3016d2040746c9e262262b579f\"\u003e\u003ccode\u003e69dcb8e\u003c/code\u003e\u003c/a\u003e Allow Windows CI builds to fail.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/da44b2ce65785de6cffa0266db0a11ad656fb9f1\"\u003e\u003ccode\u003eda44b2c\u003c/code\u003e\u003c/a\u003e Update OS versions in the Actions CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/fd78455269216e123fcf8199a83a49bda1a2e0ae\"\u003e\u003ccode\u003efd78455\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003erequire_relative\u003c/code\u003e when pulling in \u003ccode\u003etest_helper\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/78848c59edd7dfbc073180f8a6d7d469a3376558\"\u003e\u003ccode\u003e78848c5\u003c/code\u003e\u003c/a\u003e Only require test helpers where they are needed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/e55f7c9bcbd66e9e0d9cfb5637d769e5e067eb2c\"\u003e\u003ccode\u003ee55f7c9\u003c/code\u003e\u003c/a\u003e Move all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/5f1fcb2761735c6466fbb91c69de42d8b15850f6\"\u003e\u003ccode\u003e5f1fcb2\u003c/code\u003e\u003c/a\u003e Remove unnecessary perms from \u003ccode\u003egentestfiles.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/ceabd0397444f3c969bac6f11d2d817d6d6678fe\"\u003e\u003ccode\u003eceabd03\u003c/code\u003e\u003c/a\u003e Remove unnecessary \u003ccode\u003erequire\u003c/code\u003es from \u003ccode\u003etest_helper.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyzip/rubyzip/compare/v3.1.0...v3.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 7.2.2.2 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the Postgresql adapter always use a dedicated connection even during system tests.\u003c/p\u003e\n\u003cp\u003eFix an issue with the Action Cable Postgresql adapter causing deadlock or various weird\npg client error during system tests.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 7.2.2.2 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailbox/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a993c27a50395e727872600b5669976ff0a272e7\"\u003e\u003ccode\u003ea993c27\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dd8f7185faeca6ee968a6e9367f6d8601a83b8db\"\u003e\u003ccode\u003edd8f718\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/84f47ad72fa60b8f90fdb1eac91c30d00e4e99d5\"\u003e\u003ccode\u003e84f47ad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f97b86662c6510b599eb74e9e23c960032d6b082\"\u003e\u003ccode\u003ef97b866\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003ewith_routing\u003c/code\u003e test helper to not rebuild the middleware stack.\u003c/p\u003e\n\u003cp\u003eOtherwise some middleware configuration could be lost.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 7.2.2.2 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate vendored trix version to 2.1.10\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJohn Hawthorn\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003ehtml_options[:form]\u003c/code\u003e when \u003ccode\u003ecollection_checkboxes\u003c/code\u003e generates the\nhidden \u003ccode\u003e\u0026lt;input\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRiccardo Odone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLayouts have access to local variables passed to \u003ccode\u003erender\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/31680\"\u003e#31680\u003c/a\u003e which was a regression in Rails 5.1.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eArgument errors related to strict locals in templates now raise an\n\u003ccode\u003eActionView::StrictLocalsError\u003c/code\u003e, and all other argument errors are reraised as-is.\u003c/p\u003e\n\u003cp\u003ePreviously, any \u003ccode\u003eArgumentError\u003c/code\u003e raised during template rendering was swallowed during strict\nlocal error handling, so that an \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals (e.g., a helper\nmethod invoked with incorrect arguments) would be replaced by a similar \u003ccode\u003eArgumentError\u003c/code\u003e with an\nunrelated backtrace, making it difficult to debug templates.\u003c/p\u003e\n\u003cp\u003eNow, any \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals is reraised, preserving the original\nbacktrace for developers.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 7.2.2.2 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid crashing in Active Job logger when logging enqueueing errors\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e could fail with a \u003ccode\u003eTypeError\u003c/code\u003e when all\nprovided jobs failed to be enqueueed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEfstathios Stivaros\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated \u003ccode\u003econfig.active_job.use_big_decimal_serializer\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 7.2.2.2 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSuppo...\n\n_Description has been truncated_","html_url":"https://github.com/jruby/jruby-rack/pull/349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-rack/issues/349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/349/packages"},{"uuid":"2894294821","node_id":"PR_kwDNQRvOrINvJQ","number":348,"state":"closed","title":"1.2.x: Bump the ruby-deps group across 4 directories with 27 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-07T14:53:16.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-07T14:51:42.000Z","updated_at":"2025-10-07T14:53:16.000Z","time_to_close":94,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"1.2.x: Bump","group_name":"ruby-deps","update_count":27,"packages":[{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rexml","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"rubyzip","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rails","old_version":"7.2.2.2","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"actioncable","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailbox","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailer","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionpack","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actiontext","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionview","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activejob","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activemodel","old_version":"7.2.2.2","new_version":"8.0.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-deps group with 1 update in the / directory: [rack](https://github.com/rack/rack).\nBumps the ruby-deps group with 3 updates in the /examples/camping directory: [rack](https://github.com/rack/rack), [rexml](https://github.com/ruby/rexml) and [rubyzip](https://github.com/rubyzip/rubyzip).\nBumps the ruby-deps group with 2 updates in the /examples/rails7 directory: [rack](https://github.com/rack/rack) and [rails](https://github.com/rails/rails).\nBumps the ruby-deps group with 2 updates in the /examples/sinatra directory: [rack](https://github.com/rack/rack) and [sinatra](https://github.com/sinatra/sinatra).\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\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.3 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\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\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\u003eSee full diff in \u003ca href=\"https://github.com/ruby/rexml/compare/v3.4.3...v3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubyzip` from 3.1.0 to 3.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyzip/rubyzip/releases\"\u003erubyzip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.1\u003c/h2\u003e\n\u003cp\u003eVersion 3.1.1\u003c/p\u003e\n\u003cp\u003eThe 3.1.x line adds AES decryption.\u003c/p\u003e\n\u003cp\u003e⚠️ There are breaking changes in the 3.x series ⚠️\u003c/p\u003e\n\u003cp\u003ePlease see the README and \u003ca href=\"https://github.com/rubyzip/rubyzip/wiki/Updating-to-version-3.x\"\u003eUpdating to version 3.x\u003c/a\u003e in the wiki for help upgrading from version 2.4.x to version 3.x.\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/rubyzip/rubyzip/blob/main/Changelog.md\"\u003erubyzip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.1 (2025-09-26)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the IO pipeline when decompressing. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/649\"\u003e#649\u003c/a\u003e (which also fixes \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTooling/internal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the \u003ccode\u003eDecryptedIo\u003c/code\u003e class with various updates and optimizations.\u003c/li\u003e\n\u003cli\u003eRemove the \u003ccode\u003eNullDecrypter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003eProperly convert the test suite to use minitest.\u003c/li\u003e\n\u003cli\u003eMove all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003eUpdates to the Actions CI, including new OS versions.\u003c/li\u003e\n\u003cli\u003eUpdate rubocop versions and fix resultant cop failures. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/646\"\u003e#646\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/rubyzip/rubyzip/commit/f87340db528531e5e96b13219bf7651551c43f5a\"\u003e\u003ccode\u003ef87340d\u003c/code\u003e\u003c/a\u003e Update version number and Changelog for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/813d96da709af363c32bc46ca8b293bb1d9dd9b3\"\u003e\u003ccode\u003e813d96d\u003c/code\u003e\u003c/a\u003e Add a Rubocop badge to the README.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/61c25b021a80c2309ea408619c2491b807a11fa9\"\u003e\u003ccode\u003e61c25b0\u003c/code\u003e\u003c/a\u003e Reduce the number of YJIT test runs in CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/69dcb8e202e64a3016d2040746c9e262262b579f\"\u003e\u003ccode\u003e69dcb8e\u003c/code\u003e\u003c/a\u003e Allow Windows CI builds to fail.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/da44b2ce65785de6cffa0266db0a11ad656fb9f1\"\u003e\u003ccode\u003eda44b2c\u003c/code\u003e\u003c/a\u003e Update OS versions in the Actions CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/fd78455269216e123fcf8199a83a49bda1a2e0ae\"\u003e\u003ccode\u003efd78455\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003erequire_relative\u003c/code\u003e when pulling in \u003ccode\u003etest_helper\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/78848c59edd7dfbc073180f8a6d7d469a3376558\"\u003e\u003ccode\u003e78848c5\u003c/code\u003e\u003c/a\u003e Only require test helpers where they are needed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/e55f7c9bcbd66e9e0d9cfb5637d769e5e067eb2c\"\u003e\u003ccode\u003ee55f7c9\u003c/code\u003e\u003c/a\u003e Move all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/5f1fcb2761735c6466fbb91c69de42d8b15850f6\"\u003e\u003ccode\u003e5f1fcb2\u003c/code\u003e\u003c/a\u003e Remove unnecessary perms from \u003ccode\u003egentestfiles.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/ceabd0397444f3c969bac6f11d2d817d6d6678fe\"\u003e\u003ccode\u003eceabd03\u003c/code\u003e\u003c/a\u003e Remove unnecessary \u003ccode\u003erequire\u003c/code\u003es from \u003ccode\u003etest_helper.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyzip/rubyzip/compare/v3.1.0...v3.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 7.2.2.2 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the Postgresql adapter always use a dedicated connection even during system tests.\u003c/p\u003e\n\u003cp\u003eFix an issue with the Action Cable Postgresql adapter causing deadlock or various weird\npg client error during system tests.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 7.2.2.2 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailbox/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a993c27a50395e727872600b5669976ff0a272e7\"\u003e\u003ccode\u003ea993c27\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dd8f7185faeca6ee968a6e9367f6d8601a83b8db\"\u003e\u003ccode\u003edd8f718\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/84f47ad72fa60b8f90fdb1eac91c30d00e4e99d5\"\u003e\u003ccode\u003e84f47ad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f97b86662c6510b599eb74e9e23c960032d6b082\"\u003e\u003ccode\u003ef97b866\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003ewith_routing\u003c/code\u003e test helper to not rebuild the middleware stack.\u003c/p\u003e\n\u003cp\u003eOtherwise some middleware configuration could be lost.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 7.2.2.2 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate vendored trix version to 2.1.10\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJohn Hawthorn\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003ehtml_options[:form]\u003c/code\u003e when \u003ccode\u003ecollection_checkboxes\u003c/code\u003e generates the\nhidden \u003ccode\u003e\u0026lt;input\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRiccardo Odone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLayouts have access to local variables passed to \u003ccode\u003erender\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/31680\"\u003e#31680\u003c/a\u003e which was a regression in Rails 5.1.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eArgument errors related to strict locals in templates now raise an\n\u003ccode\u003eActionView::StrictLocalsError\u003c/code\u003e, and all other argument errors are reraised as-is.\u003c/p\u003e\n\u003cp\u003ePreviously, any \u003ccode\u003eArgumentError\u003c/code\u003e raised during template rendering was swallowed during strict\nlocal error handling, so that an \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals (e.g., a helper\nmethod invoked with incorrect arguments) would be replaced by a similar \u003ccode\u003eArgumentError\u003c/code\u003e with an\nunrelated backtrace, making it difficult to debug templates.\u003c/p\u003e\n\u003cp\u003eNow, any \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals is reraised, preserving the original\nbacktrace for developers.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 7.2.2.2 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid crashing in Active Job logger when logging enqueueing errors\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e could fail with a \u003ccode\u003eTypeError\u003c/code\u003e when all\nprovided jobs failed to be enqueueed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEfstathios Stivaros\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated \u003ccode\u003econfig.active_job.use_big_decimal_serializer\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 7.2.2.2 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSuppo...\n\n_Description has been truncated_","html_url":"https://github.com/jruby/jruby-rack/pull/348","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-rack/issues/348","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/348/packages"},{"uuid":"2868991659","node_id":"PR_kwDOAmAyHM6rAVar","number":151,"state":"open","title":"Bump the semver_updates group with 22 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T04:31:29.000Z","updated_at":"2025-09-29T04:31:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"semver_updates","update_count":22,"packages":[{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1162.0","new_version":"1.1166.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-kms","old_version":"1.112.0","new_version":"1.113.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-s3","old_version":"1.199.0","new_version":"1.199.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"mime-types-data","old_version":"3.2025.0916","new_version":"3.2025.0924","repository_url":"https://github.com/mime-types/mime-types-data"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"rubyzip","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"sass-embedded","old_version":"1.93.0","new_version":"1.93.2","repository_url":"https://github.com/sass-contrib/sass-embedded-host-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the semver_updates group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1162.0` | `1.1166.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [aws-sdk-kms](https://github.com/aws/aws-sdk-ruby) | `1.112.0` | `1.113.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.199.0` | `1.199.1` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [mime-types-data](https://github.com/mime-types/mime-types-data) | `3.2025.0916` | `3.2025.0924` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `3.1.0` | `3.1.1` |\n| [sass-embedded](https://github.com/sass-contrib/sass-embedded-host-ruby) | `1.93.0` | `1.93.2` |\n\nUpdates `rails` from 8.0.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\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.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/830363adf5a1d04204cd1567d6ac948abd05c430\"\u003e\u003ccode\u003e830363a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55688\"\u003e#55688\u003c/a\u003e from Shopify/drop-active-support-benchmar-extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c9a82e214046ec0daa06dc0b1718e948ccdc7c9a\"\u003e\u003ccode\u003ec9a82e2\u003c/code\u003e\u003c/a\u003e BigDecimal now works with floats without precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae1aa389499547813879386d9bd22aa4402d9650\"\u003e\u003ccode\u003eae1aa38\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53093\"\u003e#53093\u003c/a\u003e from armstrjare/broadcast-logger-with-block\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-partitions` from 1.1162.0 to 1.1166.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-partitions/CHANGELOG.md\"\u003eaws-partitions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1166.0 (2025-09-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1165.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1164.0 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1163.0 (2025-09-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\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 `aws-sdk-core` from 3.232.0 to 3.233.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.233.0 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Updated Aws::SSOOIDC::Client with the latest API changes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - This release includes exception definition and documentation updates.\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\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 `aws-sdk-kms` from 1.112.0 to 1.113.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-kms/CHANGELOG.md\"\u003eaws-sdk-kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.113.0 (2025-09-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Documentation only updates for KMS.\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 `aws-sdk-s3` from 1.199.0 to 1.199.1\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.199.1 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Update \u003ccode\u003eTransferManager#download_file\u003c/code\u003e and \u003ccode\u003eObject#download_file\u003c/code\u003e documentation regarding temporary file usage and failure handling for different destination types.\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 `globalid` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/globalid/releases\"\u003eglobalid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet required ruby version to 2.7.0 and up by \u003ca href=\"https://github.com/risen\"\u003e\u003ccode\u003e@​risen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/169\"\u003erails/globalid#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep using URI RFC2396 parser by \u003ca href=\"https://github.com/voxik\"\u003e\u003ccode\u003e@​voxik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/192\"\u003erails/globalid#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eDEFAULT_LOCATOR\u003c/code\u003e Configurable by \u003ca href=\"https://github.com/heka1024\"\u003e\u003ccode\u003e@​heka1024\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/179\"\u003erails/globalid#179\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/risen\"\u003e\u003ccode\u003e@​risen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/169\"\u003erails/globalid#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/botandrosedesign/rw24/pull/151","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/botandrosedesign%2Frw24/issues/151","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/151/packages"},{"uuid":"2868593044","node_id":"PR_kwDOAHKnzc6q-0GU","number":3330,"state":"open","title":"Bump activejob, activesupport, activerecord, activemodel, railties, actionpack, actionview, actionmailer and actioncable","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T00:03:03.000Z","updated_at":"2025-09-29T00:03:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"activejob, activesupport, activerecord, activemodel, railties, actionpack, actionview, actionmailer"},{"name":"actioncable","repository_url":"https://github.com/rails/rails","old_version":"7.2.2.2","new_version":"8.0.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [activejob](https://github.com/rails/rails), [activesupport](https://github.com/rails/rails), [activerecord](https://github.com/rails/rails), [activemodel](https://github.com/rails/rails), [railties](https://github.com/rails/rails), [actionpack](https://github.com/rails/rails), [actionview](https://github.com/rails/rails), [actionmailer](https://github.com/rails/rails) and [actioncable](https://github.com/rails/rails). These dependencies needed to be updated together.\nUpdates `activejob` from 7.2.2.2 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid crashing in Active Job logger when logging enqueueing errors\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e could fail with a \u003ccode\u003eTypeError\u003c/code\u003e when all\nprovided jobs failed to be enqueueed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEfstathios Stivaros\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated \u003ccode\u003econfig.active_job.use_big_decimal_serializer\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 7.2.2.2 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/830363adf5a1d04204cd1567d6ac948abd05c430\"\u003e\u003ccode\u003e830363a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55688\"\u003e#55688\u003c/a\u003e from Shopify/drop-active-support-benchmar-extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c9a82e214046ec0daa06dc0b1718e948ccdc7c9a\"\u003e\u003ccode\u003ec9a82e2\u003c/code\u003e\u003c/a\u003e BigDecimal now works with floats without precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae1aa389499547813879386d9bd22aa4402d9650\"\u003e\u003ccode\u003eae1aa38\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53093\"\u003e#53093\u003c/a\u003e from armstrjare/broadcast-logger-with-block\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 7.2.2.2 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 7.2.2.2 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003e:except_on\u003c/code\u003e option for validations. Grants the ability to \u003cem\u003eskip\u003c/em\u003e validations in specified contexts.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eclass User \u0026lt; ApplicationRecord\n    #...\n    validates :birthday, presence: { except_on: :admin }\n    #...\nend\n\u003cp\u003e\u003c/code\u003e\u003c/pre\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `railties` from 7.2.2.2 to 8.0.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\"\u003erailties's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/railties/CHANGELOG.md\"\u003erailties's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003epolymorphic_url\u003c/code\u003e and \u003ccode\u003epolymorphic_path\u003c/code\u003e not working when routes are not loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rails console to not override user defined IRB_NAME.\u003c/p\u003e\n\u003cp\u003eOnly change the prompt name if it hasn't been customized in \u003ccode\u003e.irbrc\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJarrett Lusso\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rails console to load routes.\u003c/p\u003e\n\u003cp\u003eOtherwise \u003ccode\u003e*_path\u003c/code\u003e and \u003ccode\u003e*url\u003c/code\u003e methods are missing on the \u003ccode\u003eapp\u003c/code\u003e object.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003erails new --minimal\u003c/code\u003e option\u003c/p\u003e\n\u003cp\u003eExtend the \u003ccode\u003e--minimal\u003c/code\u003e flag to exclude recently added features:\n\u003ccode\u003eskip_brakeman\u003c/code\u003e, \u003ccode\u003eskip_ci\u003c/code\u003e, \u003ccode\u003eskip_docker\u003c/code\u003e, \u003ccode\u003eskip_kamal\u003c/code\u003e, \u003ccode\u003eskip_rubocop\u003c/code\u003e, \u003ccode\u003eskip_solid\u003c/code\u003e and \u003ccode\u003eskip_thruster\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eeelcoj\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003esecret_key_base\u003c/code\u003e from ENV or credentials when present locally.\u003c/p\u003e\n\u003cp\u003eWhen ENV[\u0026quot;SECRET_KEY_BASE\u0026quot;] or\n\u003ccode\u003eRails.application.credentials.secret_key_base\u003c/code\u003e is set for test or\ndevelopment, it is used for the \u003ccode\u003eRails.config.secret_key_base\u003c/code\u003e,\ninstead of generating a \u003ccode\u003etmp/local_secret.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePetrik de Heus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip generation system tests related code for CI when \u003ccode\u003e--skip-system-test\u003c/code\u003e is given.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add bin/thrust if thruster is not in Gemfile.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7ec132e320cbd074678aaa9a6a0d140bac7bb0b\"\u003e\u003ccode\u003ef7ec132\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55495\"\u003e#55495\u003c/a\u003e from joaquintomas2003/authentication_test_files_gen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/09d468bf17991d591d91ffd25294ecfb6d42b75f\"\u003e\u003ccode\u003e09d468b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55227\"\u003e#55227\u003c/a\u003e from fabricerenard12/55215_name_error_health_contro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4aa38935138b8684a881a6d8d9ae0bc5411e75ee\"\u003e\u003ccode\u003e4aa3893\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55622\"\u003e#55622\u003c/a\u003e from zzak/8-0-54031\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003ewith_routing\u003c/code\u003e test helper to not rebuild the middleware stack.\u003c/p\u003e\n\u003cp\u003eOtherwise some middleware configuration could be lost.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003ehtml_options[:form]\u003c/code\u003e when \u003ccode\u003ecollection_checkboxes\u003c/code\u003e generates the\nhidden \u003ccode\u003e\u0026lt;input\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRiccardo Odone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLayouts have access to local variables passed to \u003ccode\u003erender\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/31680\"\u003e#31680\u003c/a\u003e which was a regression in Rails 5.1.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eArgument errors related to strict locals in templates now raise an\n\u003ccode\u003eActionView::StrictLocalsError\u003c/code\u003e, and all other argument errors are reraised as-is.\u003c/p\u003e\n\u003cp\u003ePreviously, any \u003ccode\u003eArgumentError\u003c/code\u003e raised during template rendering was swallowed during strict\nlocal error handling, so that an \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals (e.g., a helper\nmethod invoked with incorrect arguments) would be replaced by a similar \u003ccode\u003eArgumentError\u003c/code\u003e with an\nunrelated backtrace, making it difficult to debug templates.\u003c/p\u003e\n\u003cp\u003eNow, any \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals is reraised, preserving the original\nbacktrace for developers.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/84f47ad72fa60b8f90fdb1eac91c30d00e4e99d5\"\u003e\u003ccode\u003e84f47ad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f97b86662c6510b599eb74e9e23c960032d6b082\"\u003e\u003ccode\u003ef97b866\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the Postgresql adapter always use a dedicated connection even during system tests.\u003c/p\u003e\n\u003cp\u003eFix an issue with the Action Cable Postgresql adapter causing deadlock or various weird\npg client error during system tests.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/MushroomObserver/mushroom-observer/pull/3330","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MushroomObserver%2Fmushroom-observer/issues/3330","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3330/packages"},{"uuid":"2868361237","node_id":"PR_kwDOFVnQpc6q97gV","number":2267,"state":"open","title":"Chore(deps): Bump the bundler group with 25 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-28T20:05:38.000Z","updated_at":"2025-09-30T06:42:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"bundler","update_count":25,"packages":[{"name":"aws-sdk-s3","old_version":"1.199.0","new_version":"1.199.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.28.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.28.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1162.0","new_version":"1.1166.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-kms","old_version":"1.112.0","new_version":"1.113.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"http-cookie","old_version":"1.0.8","new_version":"1.1.0","repository_url":"https://github.com/sparklemotion/http-cookie"},{"name":"json","old_version":"2.14.1","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"mime-types-data","old_version":"3.2025.0916","new_version":"3.2025.0924","repository_url":"https://github.com/mime-types/mime-types-data"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/redis-rb/redis-client"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 25 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.199.0` | `1.199.1` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.28.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.28.0` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1162.0` | `1.1166.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [aws-sdk-kms](https://github.com/aws/aws-sdk-ruby) | `1.112.0` | `1.113.0` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [http-cookie](https://github.com/sparklemotion/http-cookie) | `1.0.8` | `1.1.0` |\n| [json](https://github.com/ruby/json) | `2.14.1` | `2.15.0` |\n| [mime-types-data](https://github.com/mime-types/mime-types-data) | `3.2025.0916` | `3.2025.0924` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.1` |\n\nUpdates `aws-sdk-s3` from 1.199.0 to 1.199.1\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.199.1 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Update \u003ccode\u003eTransferManager#download_file\u003c/code\u003e and \u003ccode\u003eObject#download_file\u003c/code\u003e documentation regarding temporary file usage and failure handling for different destination types.\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 `puma` from 7.0.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.28.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\u003e5.28.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-enable Rails structured logging when \u003ccode\u003eenable_logs\u003c/code\u003e is true (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2721\"\u003e#2721\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate all Metrics related APIs \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2726\"\u003e#2726\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSentry \u003ca href=\"https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th\"\u003eno longer has the Metrics Beta offering\u003c/a\u003e so\nall the following APIs linked to Metrics have been deprecated and will be removed in the next major.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.metrics.enabled = true\n  config.metrics.enable_code_locations = true\n  config.metrics.before_emit = lambda {}\nend\n\u003cp\u003eSentry::Metrics.increment('button_click')\u003cbr /\u003e\nSentry::Metrics.distribution('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.gauge('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.set('user_view', 'jane')\u003cbr /\u003e\nSentry::Metrics.timing('how_long') { sleep(1) }\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix leftover \u003ccode\u003econfig.logger\u003c/code\u003e call in \u003ccode\u003egraphql\u003c/code\u003e patch (\u003ca href=\"https://github.com/getsentry/sentry-ruby/2722\"\u003e#2722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConfiguration.before\u003c/code\u003e and \u003ccode\u003eConfiguration.after\u003c/code\u003e to run hooks before and after given event (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/44d588ecc66247fc191a96a802593ac55505067d\"\u003e\u003ccode\u003e44d588e\u003c/code\u003e\u003c/a\u003e release: 5.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/2c8c2c177184d948140bd8a9cb651a024fae1bdb\"\u003e\u003ccode\u003e2c8c2c1\u003c/code\u003e\u003c/a\u003e feat(logging): auto-enable structured_logging in Rails (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2721\"\u003e#2721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 5.27.0 to 5.28.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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.28.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-enable Rails structured logging when \u003ccode\u003eenable_logs\u003c/code\u003e is true (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2721\"\u003e#2721\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate all Metrics related APIs \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2726\"\u003e#2726\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSentry \u003ca href=\"https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th\"\u003eno longer has the Metrics Beta offering\u003c/a\u003e so\nall the following APIs linked to Metrics have been deprecated and will be removed in the next major.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.metrics.enabled = true\n  config.metrics.enable_code_locations = true\n  config.metrics.before_emit = lambda {}\nend\n\u003cp\u003eSentry::Metrics.increment('button_click')\u003cbr /\u003e\nSentry::Metrics.distribution('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.gauge('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.set('user_view', 'jane')\u003cbr /\u003e\nSentry::Metrics.timing('how_long') { sleep(1) }\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix leftover \u003ccode\u003econfig.logger\u003c/code\u003e call in \u003ccode\u003egraphql\u003c/code\u003e patch (\u003ca href=\"https://github.com/getsentry/sentry-ruby/2722\"\u003e#2722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConfiguration.before\u003c/code\u003e and \u003ccode\u003eConfiguration.after\u003c/code\u003e to run hooks before and after given event (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/44d588ecc66247fc191a96a802593ac55505067d\"\u003e\u003ccode\u003e44d588e\u003c/code\u003e\u003c/a\u003e release: 5.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/20667ee8a48690f4857bc1f16047f563115516bc\"\u003e\u003ccode\u003e20667ee\u003c/code\u003e\u003c/a\u003e Deprecate metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2726\"\u003e#2726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/43e5788ebfbd7f6047958a50b27ff8427416eb97\"\u003e\u003ccode\u003e43e5788\u003c/code\u003e\u003c/a\u003e Add new configuration callbacks (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/076adb70e99598e18de46680ecae064755ac7045\"\u003e\u003ccode\u003e076adb7\u003c/code\u003e\u003c/a\u003e Fix old logger call in graphql (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2722\"\u003e#2722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1da1c2db805ea15fb68dd667774b14a36df1009c\"\u003e\u003ccode\u003e1da1c2d\u003c/code\u003e\u003c/a\u003e Skip sentry.message.template when there are no parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-hmrc-interface-service-api/pull/2267","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-hmrc-interface-service-api/issues/2267","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2267/packages"},{"uuid":"2856125888","node_id":"PR_kwDOJAseVs6qPQXA","number":1627,"state":"closed","title":"Chore(deps): Bump the bundler group with 23 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-25T02:04:30.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-24T09:13:49.000Z","updated_at":"2025-09-25T02:04:30.000Z","time_to_close":60641,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"bundler","update_count":23,"packages":[{"name":"propshaft","old_version":"1.2.1","new_version":"1.3.1","repository_url":"https://github.com/rails/propshaft"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1161.0","new_version":"1.1164.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"better_html","old_version":"2.1.1","new_version":"2.2.0","repository_url":"https://github.com/Shopify/better-html"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"json","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/redis-rb/redis-client"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 23 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [propshaft](https://github.com/rails/propshaft) | `1.2.1` | `1.3.1` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1161.0` | `1.1164.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [better_html](https://github.com/Shopify/better-html) | `2.1.1` | `2.2.0` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [json](https://github.com/ruby/json) | `2.14.0` | `2.15.0` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.0` |\n\nUpdates `propshaft` from 1.2.1 to 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/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTurn Propshaft::Server into a proper middleware by \u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/propshaft/compare/v1.2.1...v1.3.0\"\u003ehttps://github.com/rails/propshaft/compare/v1.2.1...v1.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/rails/propshaft/commit/68bb8c5758b587d5184e6d13173cb057beec8d3c\"\u003e\u003ccode\u003e68bb8c5\u003c/code\u003e\u003c/a\u003e Prepare for 1.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/4024092b8be6a5365170433eaae8bb4275b31f21\"\u003e\u003ccode\u003e4024092\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/253\"\u003e#253\u003c/a\u003e from rails/rm-fix-middleware\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/fad626fdd46117b9381c0e3763fe0023ec6f60f2\"\u003e\u003ccode\u003efad626f\u003c/code\u003e\u003c/a\u003e Move Propshaft::Server middleware before \u003ccode\u003eActionDispatch::Executor\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8ebcd4573653d503167f3c8a1e375fc9ffa0407c\"\u003e\u003ccode\u003e8ebcd45\u003c/code\u003e\u003c/a\u003e Prepare for 1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/84d9a558f78de177914d2772c9b90f671d85833f\"\u003e\u003ccode\u003e84d9a55\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/249\"\u003e#249\u003c/a\u003e from byroot/rack-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/b38964096a2f5238b64a80f992a72daf95704322\"\u003e\u003ccode\u003eb389640\u003c/code\u003e\u003c/a\u003e Turn Propshaft::Server into a proper middleware\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.2.1...v1.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.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.27.1\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\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 5.27.0 to 5.27.1\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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1da1c2db805ea15fb68dd667774b14a36df1009c\"\u003e\u003ccode\u003e1da1c2d\u003c/code\u003e\u003c/a\u003e Skip sentry.message.template when there are no parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\u003c/p\u003e\n\u003c/li\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-assure-hmrc-data/pull/1627","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assure-hmrc-data/issues/1627","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1627/packages"},{"uuid":"2855083977","node_id":"PR_kwDODdTws86qLR_J","number":3093,"state":"closed","title":"Bump the bundler group with 21 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-24T10:18:47.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-24T02:05:32.000Z","updated_at":"2025-09-24T10:18:48.000Z","time_to_close":29595,"merged_at":"2025-09-24T10:18:47.000Z","merged_by":"patrick-laa","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":21,"packages":[{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"json","old_version":"2.13.2","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/redis-rb/redis-client"},{"name":"rubocop-ast","old_version":"1.46.0","new_version":"1.47.1","repository_url":"https://github.com/rubocop/rubocop-ast"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 21 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [json](https://github.com/ruby/json) | `2.13.2` | `2.15.0` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.0` |\n| [rubocop-ast](https://github.com/rubocop/rubocop-ast) | `1.46.0` | `1.47.1` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n\nUpdates `puma` from 7.0.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.27.1\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\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 5.27.0 to 5.27.1\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-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/830363adf5a1d04204cd1567d6ac948abd05c430\"\u003e\u003ccode\u003e830363a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55688\"\u003e#55688\u003c/a\u003e from Shopify/drop-active-support-benchmar-extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c9a82e214046ec0daa06dc0b1718e948ccdc7c9a\"\u003e\u003ccode\u003ec9a82e2\u003c/code\u003e\u003c/a\u003e BigDecimal now works with floats without precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae1aa389499547813879386d9bd22aa4402d9650\"\u003e\u003ccode\u003eae1aa38\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53093\"\u003e#53093\u003c/a\u003e from armstrjare/broadcast-logger-with-block\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `globalid` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/globalid/releases\"\u003eglobalid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet required ruby version to 2.7.0 and up by \u003ca href=\"https://github.com/risen\"\u003e\u003ccode\u003e@​risen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/169\"\u003erails/globalid#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep using URI RFC2396 parser by \u003ca href=\"https://github.com/voxik\"\u003e\u003ccode\u003e@​voxik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/192\"\u003erails/globalid#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eDEFAULT_LOCATOR\u003c/code\u003e Configurable by \u003ca href=\"https://github.com/heka1024\"\u003e\u003ccode\u003e@​heka1024\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/179\"\u003erails/globalid#179\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://...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-court-data-ui/pull/3093","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-court-data-ui/issues/3093","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3093/packages"},{"uuid":"2854658727","node_id":"PR_kwDOAmyAE86qJqKn","number":940,"state":"open","title":"build(deps): bump actioncable from 8.0.2 to 8.0.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T22:05:33.000Z","updated_at":"2025-09-23T22:05:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"actioncable","old_version":"8.0.2","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2...v8.0.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.2\u0026new-version=8.0.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/codacy/codacy-rubocop/pull/940","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codacy%2Fcodacy-rubocop/issues/940","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/940/packages"},{"uuid":"2854426695","node_id":"PR_kwDOCJQbzs6qIxhH","number":8049,"state":"open","title":"build(deps): bump the bundler group with 25 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T20:09:06.000Z","updated_at":"2025-09-24T06:26:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler","update_count":25,"packages":[{"name":"oauth","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/ruby-oauth/oauth"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"propshaft","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/propshaft"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1161.0","new_version":"1.1164.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"better_html","old_version":"2.1.1","new_version":"2.2.0","repository_url":"https://github.com/Shopify/better-html"},{"name":"json","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"oauth-tty","old_version":"1.0.5","new_version":"1.0.6","repository_url":"https://github.com/ruby-oauth/oauth-tty"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/redis-rb/redis-client"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 25 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [oauth](https://github.com/ruby-oauth/oauth) | `1.1.0` | `1.1.2` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [propshaft](https://github.com/rails/propshaft) | `1.2.1` | `1.3.0` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1161.0` | `1.1164.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [better_html](https://github.com/Shopify/better-html) | `2.1.1` | `2.2.0` |\n| [json](https://github.com/ruby/json) | `2.14.0` | `2.15.0` |\n| [oauth-tty](https://github.com/ruby-oauth/oauth-tty) | `1.0.5` | `1.0.6` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.0` |\n\nUpdates `oauth` from 1.1.0 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth/releases\"\u003eoauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/compare/v1.1.1...v1.1.2\"\u003e1.1.2\u003c/a\u003e - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth/releases/tag/v1.1.2\"\u003ev1.1.2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.78% -- 817/999 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\u003c/li\u003e\n\u003cli\u003e40.71% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrected SHA-256 \u0026amp; SHA-512 checksums for release 1.1.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOfficial Discord 👉️ \u003ca href=\"https://discord.gg/3qme4XHNKN\"\u003e\u003cimg src=\"https://img.shields.io/discord/1373797679469170758?style=flat\" alt=\"Live Chat on Discord\" /\u003e\u003c/a\u003e\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 \u003ca href=\"https://www.paypal.com/paypalme/peterboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat\u0026amp;logo=paypal\" alt=\"Donate on PayPal\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.buymeacoffee.com/pboling\"\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\u003c/a\u003e \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 or refugee 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 or refugee efforts using Patreon\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003e[1.1.1] - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v1.1.1][1.1.1t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.70% -- 817/1000 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\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/ruby-oauth/oauth/blob/main/CHANGELOG.md\"\u003eoauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.2] - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v1.1.2][1.1.2t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.78% -- 817/999 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\u003c/li\u003e\n\u003cli\u003e40.71% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrected SHA-256 \u0026amp; SHA-512 checksums for release 1.1.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v1.1.1][1.1.1t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.70% -- 817/1000 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\u003c/li\u003e\n\u003cli\u003e40.71% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ekettle-dev v1.1.18\u003c/li\u003e\n\u003cli\u003eInternal escape \u0026amp; unescape methods\n\u003cul\u003e\n\u003cli\u003eStop relying on URI / CGI for escaping and unescaping\u003c/li\u003e\n\u003cli\u003eThey are both unstable across supported versions of Ruby (including 3.5 HEAD)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTests against Rails-specific code are now run in CI\u003c/li\u003e\n\u003cli\u003eDocumented OAuth 1.0, 1.0a differences\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econverted minitest =\u0026gt; rspec\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edependency on em-http-request\n\u003cul\u003e\n\u003cli\u003enow lazy Loaded so it can be optional, since some systems fail to install it, and it doesn't seem maintained\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/oauth/commit/1f6d6026de2c45936537cfe743846448bd46b4ab\"\u003e\u003ccode\u003e1f6d602\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v1.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/fe4b9f55613979811e55b496382349db354c90ba\"\u003e\u003ccode\u003efe4b9f5\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v1.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/9c07742a8ecfcd357360fd0c0b5d8bfc5c1b2013\"\u003e\u003ccode\u003e9c07742\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/1b7901bc8a18e80b5108efb60662164612702df1\"\u003e\u003ccode\u003e1b7901b\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/499a738059b60a90485c5aeafb7b1e28995343d4\"\u003e\u003ccode\u003e499a738\u003c/code\u003e\u003c/a\u003e 🔒️ New cert expires 2045-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/b7498bcd4c38a7123b0ec06adaf0717d890e8875\"\u003e\u003ccode\u003eb7498bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth/issues/339\"\u003e#339\u003c/a\u003e from ruby-oauth/feat/release-prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/9e9d646eb371c40458a853f94002f76087ad8cd8\"\u003e\u003ccode\u003e9e9d646\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/f7b84b7e5a9ef6c4d4fd6fb33597f639dc1207cf\"\u003e\u003ccode\u003ef7b84b7\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/dedd093bdd1764a1c7e4eb6be25ff882aea3a56b\"\u003e\u003ccode\u003ededd093\u003c/code\u003e\u003c/a\u003e 📝 Update license years\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/3d985f0108313776bdc28905b741a659caea326e\"\u003e\u003ccode\u003e3d985f0\u003c/code\u003e\u003c/a\u003e 🔥 remove post-install message\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth/compare/v1.1.0...v1.1.2\"\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.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.27.1\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\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 5.27.0 to 5.27.1\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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1da1c2db805ea15fb68dd667774b14a36df1009c\"\u003e\u003ccode\u003e1da1c2d\u003c/code\u003e\u003c/a\u003e Skip sentry.message.template when there are no parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 5.27.0 to 5.27.1\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-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTurn Propshaft::Server into a proper middleware by \u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/propshaft/compare/v1.2.1...v1.3.0\"\u003ehttps://github.com/rails/propshaft/compare/v1.2.1...v1.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/rails/propshaft/commit/8ebcd4573653d503167f3c8a1e375fc9ffa0407c\"\u003e\u003ccode\u003e8ebcd45\u003c/code\u003e\u003c/a\u003e Prepare for 1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/84d9a558f78de177914d2772c9b90f671d85833f\"\u003e\u003ccode\u003e84d9a55\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/249\"\u003e#249\u003c/a\u003e from byroot/rack-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/b38964096a2f5238b64a80f992a72daf95704322\"\u003e\u003ccode\u003eb389640\u003c/code\u003e\u003c/a\u003e Turn Propshaft::Server into a proper middleware\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.2.1...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like o...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-apply-for-legal-aid/pull/8049","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-apply-for-legal-aid/issues/8049","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8049/packages"},{"uuid":"2854411267","node_id":"PR_kwDOBoDlBs6qItwD","number":1424,"state":"open","title":"build(deps): bump actioncable from 8.0.2.1 to 8.0.3","user":"dependabot[bot]","labels":["dependencies","ruby","automerge"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T20:01:28.000Z","updated_at":"2025-09-23T20:01:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.2.1\u0026new-version=8.0.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/steiley/sliar/pull/1424","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/steiley%2Fsliar/issues/1424","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1424/packages"},{"uuid":"2854410991","node_id":"PR_kwDOCRCuO86qItrv","number":2602,"state":"closed","title":"chore(deps): bump actioncable from 8.0.2.1 to 8.0.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-24T13:53:58.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T20:01:20.000Z","updated_at":"2025-09-24T13:53:58.000Z","time_to_close":64358,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.2.1\u0026new-version=8.0.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mishina2228/youtube-api-trial/pull/2602","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mishina2228%2Fyoutube-api-trial/issues/2602","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2602/packages"}],"issue_packages":[{"old_version":"8.1.1","new_version":"8.1.2","update_type":"patch","path":null,"pr_created_at":"2026-01-09T18:03:20.000Z","version_change":"8.1.1 → 8.1.2","issue":{"uuid":"3797863414","node_id":"PR_kwDOBBJCIM68YOFj","number":287,"state":"closed","title":"Bump the dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-13T18:03:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-09T18:03:20.000Z","updated_at":"2026-01-13T18:03:47.000Z","time_to_close":345625,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":15,"packages":[{"name":"railties","old_version":"8.1.1","new_version":"8.1.2","repository_url":"https://github.com/rails/rails"},{"name":"rails","old_version":"8.1.1","new_version":"8.1.2"},{"name":"rubocop-rspec","old_version":"3.8.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"actioncable","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionmailbox","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionmailer","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionpack","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actiontext","old_version":"8.1.1","new_version":"8.1.2"},{"name":"actionview","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activejob","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activemodel","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activerecord","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activestorage","old_version":"8.1.1","new_version":"8.1.2"},{"name":"activesupport","old_version":"8.1.1","new_version":"8.1.2"},{"name":"thor","old_version":"1.4.0","new_version":"1.5.0"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the dependencies group with 2 updates in the / directory: [railties](https://github.com/rails/rails) and [rubocop-rspec](https://github.com/rubocop/rubocop-rspec).\n\nUpdates `railties` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erailties's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/railties/CHANGELOG.md\"\u003erailties's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip all system test files on app generation.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEileen M. Uchitelle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003edb:system:change\u003c/code\u003e to correctly update Dockerfile base packages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJosiah Smith\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix devcontainer volume mount when app name differs from folder name.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the \u003ccode\u003erails notes\u003c/code\u003e command to properly extract notes in CSS files.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid White\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the default Dockerfile to properly include the \u003ccode\u003evendor/\u003c/code\u003e directory during \u003ccode\u003ebundle install\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eZhong Sheng\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d3fe83ff97d86480103c8757f055f6903612505b\"\u003e\u003ccode\u003ed3fe83f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56541\"\u003e#56541\u003c/a\u003e from rails/remove-system-test-from-default-ci-template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2bebf4fe0cbddebd3c3d3c373ee99af0bae5f040\"\u003e\u003ccode\u003e2bebf4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56488\"\u003e#56488\u003c/a\u003e from zzak/re-56365\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0f8014a0ff97888c747a481ea8ef61015c160fd4\"\u003e\u003ccode\u003e0f8014a\u003c/code\u003e\u003c/a\u003e [8-1-stable] Minitest 6 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/abd3a1b758e69df4af4b881aa07c424f9a4fc0e0\"\u003e\u003ccode\u003eabd3a1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56416\"\u003e#56416\u003c/a\u003e from byroot/railties-ci-bin-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/660af7197e62d0ee8300992e311c7eeb16172205\"\u003e\u003ccode\u003e660af71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56412\"\u003e#56412\u003c/a\u003e from davidrhyswhite/fix-css-note-comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/991ccf35933f5df1dcf1283a1ad2f9667c864fa6\"\u003e\u003ccode\u003e991ccf3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56393\"\u003e#56393\u003c/a\u003e from rails/add-exclude-keys-to-live-controller\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/18529e3eb07be69113c951532e773543593bbd8b\"\u003e\u003ccode\u003e18529e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56365\"\u003e#56365\u003c/a\u003e from jeromedalbert/include-prerelease-string-in-rub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8effe8e09a62e721afdb181c401f2514a53e0095\"\u003e\u003ccode\u003e8effe8e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56323\"\u003e#56323\u003c/a\u003e from jeromedalbert/check-yml-no-double-lines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.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.1 to 8.1.2\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.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/695ac6d83e14d85c131dc4bbad04e9d9cd22676c\"\u003e\u003ccode\u003e695ac6d\u003c/code\u003e\u003c/a\u003e Update Gemfile.lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/01263f18e8cd1f9443fe50940682b89ad862450e\"\u003e\u003ccode\u003e01263f1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56512\"\u003e#56512\u003c/a\u003e from byroot/remove-minitest-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d3fe83ff97d86480103c8757f055f6903612505b\"\u003e\u003ccode\u003ed3fe83f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56541\"\u003e#56541\u003c/a\u003e from rails/remove-system-test-from-default-ci-template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/528351457f6aa2a472c22b6cf481bea7d2621e0b\"\u003e\u003ccode\u003e5283514\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56012\"\u003e#56012\u003c/a\u003e from jmalcic/restore-default-adc-for-gcs-iam-client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53e82ef8a931d4b6d01b9240ea6e486b31e14d61\"\u003e\u003ccode\u003e53e82ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56534\"\u003e#56534\u003c/a\u003e from khasinski/fix-sqlite3-schema-dump-default-nil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d2509f864aed30800b9e6d305831a62c825033a5\"\u003e\u003ccode\u003ed2509f8\u003c/code\u003e\u003c/a\u003e Allow backburner warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c48fd1c1e0a66217e03fe227197dd7b8ff0fc3c\"\u003e\u003ccode\u003e8c48fd1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56535\"\u003e#56535\u003c/a\u003e from eglitobias/8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/adcface26aae1018cdfe87610f85c87508b52865\"\u003e\u003ccode\u003eadcface\u003c/code\u003e\u003c/a\u003e Fix PostgreSQL schema_search_path after reconnect and reset\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rspec` from 3.8.0 to 3.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/releases\"\u003erubocop-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop RSpec v3.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/LeakyLocalVariable\u003c/code\u003e when variables are used only in example metadata (e.g., skip messages). (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ScatteredSetup\u003c/code\u003e when the hook is defined inside a class method. (\u003ca href=\"https://github.com/d4rky-pl\"\u003e\u003ccode\u003e@​d4rky-pl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/DescribedClass\u003c/code\u003e inside dynamically evaluated blocks (\u003ccode\u003eclass_eval\u003c/code\u003e, \u003ccode\u003emodule_eval\u003c/code\u003e, \u003ccode\u003einstance_eval\u003c/code\u003e, \u003ccode\u003eclass_exec\u003c/code\u003e, \u003ccode\u003emodule_exec\u003c/code\u003e, \u003ccode\u003einstance_exec\u003c/code\u003e). (\u003ca href=\"https://github.com/sucicfilip\"\u003e\u003ccode\u003e@​sucicfilip\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/Output\u003c/code\u003e. (\u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md\"\u003erubocop-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.0 (2026-01-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/LeakyLocalVariable\u003c/code\u003e when variables are used only in example metadata (e.g., skip messages). ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ScatteredSetup\u003c/code\u003e when the hook is defined inside a class method. ([\u003ca href=\"https://github.com/d4rky-pl\"\u003e\u003ccode\u003e@​d4rky-pl\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/DescribedClass\u003c/code\u003e inside dynamically evaluated blocks (\u003ccode\u003eclass_eval\u003c/code\u003e, \u003ccode\u003emodule_eval\u003c/code\u003e, \u003ccode\u003einstance_eval\u003c/code\u003e, \u003ccode\u003eclass_exec\u003c/code\u003e, \u003ccode\u003emodule_exec\u003c/code\u003e, \u003ccode\u003einstance_exec\u003c/code\u003e). ([\u003ca href=\"https://github.com/sucicfilip\"\u003e\u003ccode\u003e@​sucicfilip\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/Output\u003c/code\u003e. ([\u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\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/rubocop/rubocop-rspec/commit/f7aecf0580cda23bd5b25c3cfddddefabb6228bc\"\u003e\u003ccode\u003ef7aecf0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2151\"\u003e#2151\u003c/a\u003e from rubocop/release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/893a25b941233616ee055201917bcb25781ce522\"\u003e\u003ccode\u003e893a25b\u003c/code\u003e\u003c/a\u003e Bump version to 3.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/91ad43dfa70d99b8d9637526a00e7cb69ace1af1\"\u003e\u003ccode\u003e91ad43d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2150\"\u003e#2150\u003c/a\u003e from kevinrobell-st/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/802b3863b24c1d55c9efcb40912bcfd36b9eb075\"\u003e\u003ccode\u003e802b386\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/a03e0c7ea939b279b2df7f9bd6ad001d47524f64\"\u003e\u003ccode\u003ea03e0c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2149\"\u003e#2149\u003c/a\u003e from rubocop/ci-test-ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/68f25d9d79d280ae1859c876638b2ac3a1f51d57\"\u003e\u003ccode\u003e68f25d9\u003c/code\u003e\u003c/a\u003e Temporarily add irb to Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/b9e50b86916704e039ab60966684943ad82780bb\"\u003e\u003ccode\u003eb9e50b8\u003c/code\u003e\u003c/a\u003e CI: Test with Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/b63bcd80ceba07294f5507ebd4692a54a9ebeb09\"\u003e\u003ccode\u003eb63bcd8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2148\"\u003e#2148\u003c/a\u003e from sucicfilip/fix-described-class-inside-eval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/278245a100f00a923bab3e2e0acac5cd5d7b7b46\"\u003e\u003ccode\u003e278245a\u003c/code\u003e\u003c/a\u003e Fix RSpec/DescribedClass to ignore *_eval and *_exec blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/ca18f5e7e9abc08bfd826c6e1b66963b48db5d71\"\u003e\u003ccode\u003eca18f5e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2144\"\u003e#2144\u003c/a\u003e from rubocop/dont-use-ruby-version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rspec/compare/v3.8.0...v3.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dc94813e8151d0b56ec6c48b4db861cc7a666a8e\"\u003e\u003ccode\u003edc94813\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56050\"\u003e#56050\u003c/a\u003e from jclusso/fix-stylesheet-tag-nonce-mailer\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003econfig.action_controller.live_streaming_excluded_keys\u003c/code\u003e to control execution state sharing in ActionController::Live.\u003c/p\u003e\n\u003cp\u003eWhen using ActionController::Live, actions are executed in a separate thread that shares\nstate from the parent thread. This new configuration allows applications to opt-out specific\nstate keys that should not be shared.\u003c/p\u003e\n\u003cp\u003eThis is useful when streaming inside a \u003ccode\u003econnected_to\u003c/code\u003e block, where you may want\nthe streaming thread to use its own database connection context.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e# config/application.rb\nconfig.action_controller.live_streaming_excluded_keys = [:active_record_connected_to_stack]\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBy default, all keys are shared.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEileen M. Uchitelle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eIpSpoofAttackError\u003c/code\u003e message to include \u003ccode\u003eForwarded\u003c/code\u003e header content.\u003c/p\u003e\n\u003cp\u003eWithout it, the error message may be misleading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df98a0d4b820d9c85a466976860c8295d7304acc\"\u003e\u003ccode\u003edf98a0d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56440\"\u003e#56440\u003c/a\u003e from zzak/ac-live-streaming-keys-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0f8014a0ff97888c747a481ea8ef61015c160fd4\"\u003e\u003ccode\u003e0f8014a\u003c/code\u003e\u003c/a\u003e [8-1-stable] Minitest 6 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/991ccf35933f5df1dcf1283a1ad2f9667c864fa6\"\u003e\u003ccode\u003e991ccf3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56393\"\u003e#56393\u003c/a\u003e from rails/add-exclude-keys-to-live-controller\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/662609d35301c42973e0b183d1294c61bb060390\"\u003e\u003ccode\u003e662609d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56252\"\u003e#56252\u003c/a\u003e from callmesangio/fix-testing-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/81dca9cc388b7426cfcd39e34e3bc57fd287b74b\"\u003e\u003ccode\u003e81dca9c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56285\"\u003e#56285\u003c/a\u003e from markokajzer/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c98c994f5994a0aae2b258c41732d9e0e4339f5b\"\u003e\u003ccode\u003ec98c994\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56256\"\u003e#56256\u003c/a\u003e from zzak/re-56186\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4388688077b6406e9d71fd622f98677a83a2c2d0\"\u003e\u003ccode\u003e4388688\u003c/code\u003e\u003c/a\u003e Fix redirect_test leaking subscription state\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13589db95b8380411baeea21dfdd2cc8e7843231\"\u003e\u003ccode\u003e13589db\u003c/code\u003e\u003c/a\u003e Fix dependency on Rails constant\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/27e709a7b623e376e12ff197ffc9ca13d8d7be20\"\u003e\u003ccode\u003e27e709a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56059\"\u003e#56059\u003c/a\u003e from Shopify/hm-zpvonttrlztqnryl\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003efile_field\u003c/code\u003e to join mime types with a comma when provided as Array\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003efile_field(:article, :image, accept: ['image/png', 'image/gif', 'image/jpeg'])\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow behaves likes:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efile_field(:article, :image, accept: 'image/png,image/gif,image/jpeg')\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eBogdan Gusiev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix strict locals parsing to handle multiline definitions.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econtent_security_policy_nonce\u003c/code\u003e error in mailers when using \u003ccode\u003econtent_security_policy_nonce_auto\u003c/code\u003e setting.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003econtent_security_policy_nonce helper\u003c/code\u003e is provided by \u003ccode\u003eActionController::ContentSecurityPolicy\u003c/code\u003e, and it relies on \u003ccode\u003erequest.content_security_policy_nonc\u003c/code\u003ee. Mailers lack both the module and the request object.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJarrett Lusso\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/27aa94fb4430b8dd9464081ad9b5ca083452570c\"\u003e\u003ccode\u003e27aa94f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56389\"\u003e#56389\u003c/a\u003e from bogdan/semantic-file-input-accept\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7cf18e084ccc631bcc96b20981fb599b806268ac\"\u003e\u003ccode\u003e7cf18e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56316\"\u003e#56316\u003c/a\u003e from shivabhusal/support-closing_parenthesis-in-nex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/160db66368584b3c6938d9b1860e865d7dd7c1b6\"\u003e\u003ccode\u003e160db66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56270\"\u003e#56270\u003c/a\u003e from Saidbek/fix-multiline-strict-locals-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/386004ebd0b84b6e31a2a34b56660a65bf0c4997\"\u003e\u003ccode\u003e386004e\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for \u003ca href=\"https://redirect.github.com/rails/rails/issues/56050\"\u003e#56050\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dc94813e8151d0b56ec6c48b4db861cc7a666a8e\"\u003e\u003ccode\u003edc94813\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56050\"\u003e#56050\u003c/a\u003e from jclusso/fix-stylesheet-tag-nonce-mailer\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e to respect \u003ccode\u003ejob_class.enqueue_after_transaction_commit\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eperform_all_later\u003c/code\u003e would enqueue all jobs immediately, even if\nthey had \u003ccode\u003eenqueue_after_transaction_commit = true\u003c/code\u003e. Now it correctly defers\njobs with this setting until after transaction commits, matching the behavior\nof \u003ccode\u003eperform_later\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix using custom serializers with \u003ccode\u003eActiveJob::Arguments.serialize\u003c/code\u003e when\n\u003ccode\u003eActiveJob::Base\u003c/code\u003e hasn't been loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f33ca37f57b456a8c3741373ae091a86a8a29589\"\u003e\u003ccode\u003ef33ca37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56507\"\u003e#56507\u003c/a\u003e from tiramizoo/rm-sucker_punch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63a0e6cbaf0227eb972fb165c6b9338ae7ca4d38\"\u003e\u003ccode\u003e63a0e6c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56264\"\u003e#56264\u003c/a\u003e from byroot/fix/activejob/perform_all_later-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c8155a611979cc620eb252769dd3fc428c706bed\"\u003e\u003ccode\u003ec8155a6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56093\"\u003e#56093\u003c/a\u003e from skipkayhil/hm-rynrvruzqlkttuqt\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1723cc565e97516eed35e7da09a571f5618b48ee\"\u003e\u003ccode\u003e1723cc5\u003c/code\u003e\u003c/a\u003e Address \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e offense at 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3c3c20bfeae7e2cdea1843bffcc421bab159c5fb\"\u003e\u003ccode\u003e3c3c20b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56058\"\u003e#56058\u003c/a\u003e from Shopify/uk-am-secure-password-require-fix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix merging relations with arel equality predicates with null relations.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 schema dump for non-autoincrement integer primary keys.\u003c/p\u003e\n\u003cp\u003ePreviously, \u003ccode\u003eschema.rb\u003c/code\u003e should incorrectly restore that table with an auto incrementing\nprimary key.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eChris Hasiński\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix PostgreSQL \u003ccode\u003eschema_search_path\u003c/code\u003e not being reapplied after \u003ccode\u003ereset!\u003c/code\u003e or \u003ccode\u003ereconnect!\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eschema_search_path\u003c/code\u003e configured in \u003ccode\u003edatabase.yml\u003c/code\u003e is now correctly\nreapplied instead of falling back to PostgreSQL defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eTobias Egli\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore the ability of enum to be foats.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eenum :rating, { low: 0.0, medium: 0.5, high: 1.0 },\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIn Rails 8.1.0, enum values are eagerly validated, and floats weren't expected.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure batched preloaded associations accounts for klass when grouping to avoid issues with STI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e, \u003cem\u003eStjepan Hadjic\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveRecord::SoleRecordExceeded#record\u003c/code\u003e to return the relation.\u003c/p\u003e\n\u003cp\u003eThis was the case until Rails 7.2, but starting from 8.0 it\nstarted mistakenly returning the model class.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove PostgreSQLAdapter resilience to Timeout.timeout.\u003c/p\u003e\n\u003cp\u003eBetter handle asynchronous exceptions being thrown inside\nthe \u003ccode\u003ereconnect!\u003c/code\u003e method.\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/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53e82ef8a931d4b6d01b9240ea6e486b31e14d61\"\u003e\u003ccode\u003e53e82ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56534\"\u003e#56534\u003c/a\u003e from khasinski/fix-sqlite3-schema-dump-default-nil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/adcface26aae1018cdfe87610f85c87508b52865\"\u003e\u003ccode\u003eadcface\u003c/code\u003e\u003c/a\u003e Fix PostgreSQL schema_search_path after reconnect and reset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13952d56e90bcba5cfa1076a7a0b806ae9564324\"\u003e\u003ccode\u003e13952d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56447\"\u003e#56447\u003c/a\u003e from Saidbek/fix-enum-float-values-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/642baed88cfdd761f8adf68452defb5573e90dd7\"\u003e\u003ccode\u003e642baed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56482\"\u003e#56482\u003c/a\u003e from fatkodima/fix-merge-arel-equality-and-null\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/49a1f7253d910638a2885629cc049d38db878491\"\u003e\u003ccode\u003e49a1f72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56415\"\u003e#56415\u003c/a\u003e from zzak/re-56047\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1b2a755fdcd13e0cdf12f06822b124209c700d35\"\u003e\u003ccode\u003e1b2a755\u003c/code\u003e\u003c/a\u003e Fix CI rerun command for active record tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/186d51ed7a78e8fb0f0069d5b3af77b507867ce2\"\u003e\u003ccode\u003e186d51e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56304\"\u003e#56304\u003c/a\u003e from fatkodima/fix-dumping-views-indexes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7acf8b301708166cc148c12a832d059d96492a23\"\u003e\u003ccode\u003e7acf8b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56287\"\u003e#56287\u003c/a\u003e from byroot/fix-sole-error-record\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRestore ADC when signing URLs with IAM for GCS\u003c/p\u003e\n\u003cp\u003eADC was previously used for automatic authorization when signing URLs with IAM.\nNow it is again, but the auth client is memoized so that new credentials are only\nrequested when the current ones expire. Other auth methods can now be used\ninstead by setting the authorization on \u003ccode\u003eActiveStorage::Service::GCSService#iam_client\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveStorage::Blob.service.iam_client.authorization = Google::Auth::ImpersonatedServiceAccountCredentials.new(options)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis is safer than setting \u003ccode\u003eGoogle::Apis::RequestOptions.default.authorization\u003c/code\u003e\nbecause it only applies to Active Storage and does not affect other Google API\nclients.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJustin Malčić\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/528351457f6aa2a472c22b6cf481bea7d2621e0b\"\u003e\u003ccode\u003e5283514\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56012\"\u003e#56012\u003c/a\u003e from jmalcic/restore-default-adc-for-gcs-iam-client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/350c13c0702bf1854e060b253f40ff42e1b5c5d6\"\u003e\u003ccode\u003e350c13c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56125\"\u003e#56125\u003c/a\u003e from zzak/re-56069\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.1.1 to 8.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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/rails/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3ea2701a15ac253fc6b87b0034a87e3abcb3d3e5\"\u003e\u003ccode\u003e3ea2701\u003c/code\u003e\u003c/a\u003e CHANGELOG sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0f8014a0ff97888c747a481ea8ef61015c160fd4\"\u003e\u003ccode\u003e0f8014a\u003c/code\u003e\u003c/a\u003e [8-1-stable] Minitest 6 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/991ccf35933f5df1dcf1283a1ad2f9667c864fa6\"\u003e\u003ccode\u003e991ccf3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56393\"\u003e#56393\u003c/a\u003e from rails/add-exclude-keys-to-live-controller\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c86465f65278d2a6200424d2853fc848a0e01356\"\u003e\u003ccode\u003ec86465f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56353\"\u003e#56353\u003c/a\u003e from rails/rmf-delegation-basic-object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fce726b75e5e2f09511cafe2142df35c7bf96921\"\u003e\u003ccode\u003efce726b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56344\"\u003e#56344\u003c/a\u003e from Saidbek/fix-inflections-fallback-to-en-locale\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/efd9bd99503c4e553aceeba7739e8f20be3ed321\"\u003e\u003ccode\u003eefd9bd9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56324\"\u003e#56324\u003c/a\u003e from jeremyevans/activesupport-uri-require\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/81dca9cc388b7426cfcd39e34e3bc57fd287b74b\"\u003e\u003ccode\u003e81dca9c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56285\"\u003e#56285\u003c/a\u003e from markokajzer/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a5c1af3b94b41f352d4f0d649375f92bfef18b74\"\u003e\u003ccode\u003ea5c1af3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56294\"\u003e#56294\u003c/a\u003e from fatkodima/fix-mem_cache_store-newer-connection...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/923f8e915e3b738a07be750d3344880df5673103\"\u003e\u003ccode\u003e923f8e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56292\"\u003e#56292\u003c/a\u003e from fatkodima/fix-redis_cache_store-newer-connecti...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thor` from 1.4.0 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/thor/releases\"\u003ethor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd specs and linter documentation by \u003ca href=\"https://github.com/hlascelles\"\u003e\u003ccode\u003e@​hlascelles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/907\"\u003erails/thor#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tree command by \u003ca href=\"https://github.com/hlascelles\"\u003e\u003ccode\u003e@​hlascelles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/906\"\u003erails/thor#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support \u003ccode\u003einsert_into_file\u003c/code\u003e erroring if the file is not changed, and add \u003ccode\u003einsert_into_file\u003c/code\u003e by \u003ca href=\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/908\"\u003erails/thor#908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport THOR_MERGE values with arguments 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/thor/pull/910\"\u003erails/thor#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHidden commands should not make an invocation ambiguous by \u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/911\"\u003erails/thor#911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet frozen_string_literal: true in colors.rb by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/913\"\u003erails/thor#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix encoding error when running a merge tool by \u003ca href=\"https://github.com/moritzschepp\"\u003e\u003ccode\u003e@​moritzschepp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/thor/pull/916\"\u003erails/thor#916\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/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/thor/pull/913\"\u003erails/thor#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/rails/thor/pull/912\"\u003erails/thor#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/moritzschepp\"\u003e\u003ccode\u003e@​moritzschepp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/thor/pull/916\"\u003erails/thor#916\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/thor/compare/v1.4.0...v1.5.0\"\u003ehttps://github.com/rails/thor/compare/v1.4.0...v1.5.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/thor/commit/6a680f2f929cc24d61b81197e113066aa18c8fbb\"\u003e\u003ccode\u003e6a680f2\u003c/code\u003e\u003c/a\u003e Prepare for 1.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/615b0c29a411302104905cf8d81af02ca0cd4765\"\u003e\u003ccode\u003e615b0c2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/919\"\u003e#919\u003c/a\u003e from rails/rmf-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/f16a2dbf503c422da309c3f2bfccbf751ca61ddb\"\u003e\u003ccode\u003ef16a2db\u003c/code\u003e\u003c/a\u003e Unlock bundler development dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/7b99536daff00deea31787e2afe7dce6fefec602\"\u003e\u003ccode\u003e7b99536\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/2a1eecb4e8b6aff1aa2941308fb2199fdb61ebe6\"\u003e\u003ccode\u003e2a1eecb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/918\"\u003e#918\u003c/a\u003e from rails/dependabot/github_actions/actions/checkout-6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/ed9ffca4e99868b3e20239125a4885dd18ba04ad\"\u003e\u003ccode\u003eed9ffca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/916\"\u003e#916\u003c/a\u003e from moritzschepp/ec-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/5b85a330ba73c5c7be4f72ca949841c707feca54\"\u003e\u003ccode\u003e5b85a33\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/2e2b684b6e29497fa9299600d21cd3dc98cd34af\"\u003e\u003ccode\u003e2e2b684\u003c/code\u003e\u003c/a\u003e fix encoding error when running a merge tool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/b2d98fea78fd993b936fc434a3ad722e73ad6bc5\"\u003e\u003ccode\u003eb2d98fe\u003c/code\u003e\u003c/a\u003e Remove whatisthor.com references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/thor/commit/17a3be95f40c255f12612c1491bccea4ca4a363f\"\u003e\u003ccode\u003e17a3be9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/thor/issues/912\"\u003e#912\u003c/a\u003e from rails/dependabot/github_actions/actions/checkout-5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/thor/compare/v1.4.0...v1.5.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/moneybird/mail_auto_link_obfuscation/pull/287","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/moneybird%2Fmail_auto_link_obfuscation/issues/287","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/287/packages"}},{"old_version":"8.1.1","new_version":"8.1.2","update_type":"patch","path":null,"pr_created_at":"2026-01-09T04:22:20.000Z","version_change":"8.1.1 → 8.1.2","issue":{"uuid":"3795420531","node_id":"PR_kwDOE3bgZM68QLJJ","number":8042,"state":"closed","title":"Bump actioncable from 8.1.1 to 8.1.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-09T04:30:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-09T04:22:20.000Z","updated_at":"2026-01-09T04:30:12.000Z","time_to_close":470,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"actioncable","old_version":"8.1.1","new_version":"8.1.2","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.1.1 to 8.1.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Inflectors when using a locale that fallbacks to \u003ccode\u003e:en\u003c/code\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\u003eFix \u003ccode\u003eActiveSupport::TimeWithZone#as_json\u003c/code\u003e to consistently return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003ePreviously the returned string would sometime be encoded in US-ASCII, which in\nsome cases may be problematic.\u003c/p\u003e\n\u003cp\u003eNow the method consistently always return UTF-8 strings.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eTimeWithZone#xmlschema\u003c/code\u003e when wrapping a \u003ccode\u003eDateTime\u003c/code\u003e instance in local time.\u003c/p\u003e\n\u003cp\u003ePreviously it would return an invalid time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDmytro Rymar\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement LocalCache strategy on \u003ccode\u003eActiveSupport::Cache::MemoryStore\u003c/code\u003e. The memory store\nneeds to respond to the same interface as other cache stores (e.g. \u003ccode\u003eActiveSupport::NullStore\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMikey Gough\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix counting cached queries in \u003ccode\u003eActiveRecord::RuntimeRegistry\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/rails/blob/v8.1.2/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.2 (January 08, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/d7c8ae65b7045490965218a994c300aea8dbb079\"\u003e\u003ccode\u003ed7c8ae6\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.1...v8.1.2\"\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=actioncable\u0026package-manager=bundler\u0026previous-version=8.1.1\u0026new-version=8.1.2)](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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/davidrunger/david_runger/pull/8042","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrunger%2Fdavid_runger/issues/8042","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8042/packages"}},{"old_version":"7.2.2.2","new_version":"7.2.3","update_type":"patch","path":null,"pr_created_at":"2025-12-22T09:26:53.000Z","version_change":"7.2.2.2 → 7.2.3","issue":{"uuid":"3753008114","node_id":"PR_kwDOO58gL866GZAm","number":79,"state":"open","title":"deps(deps): bump the production-dependencies group with 54 updates","user":"dependabot[bot]","labels":["type: maintenance","status: needs-review","size: sm","dependencies","automated","bot: dependabot","lang: ruby"],"assignees":["patrick204nqh"],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T09:26:53.000Z","updated_at":"2025-12-22T10:14:36.865Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"production-dependencies","update_count":54,"packages":[{"name":"irb","old_version":"1.15.2","new_version":"1.16.0","repository_url":"https://github.com/ruby/irb"},{"name":"rails","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"rake","old_version":"13.3.0","new_version":"13.3.1","repository_url":"https://github.com/ruby/rake"},{"name":"rspec","old_version":"3.13.1","new_version":"3.13.2","repository_url":"https://github.com/rspec/rspec"},{"name":"bundler-audit","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/rubysec/bundler-audit"},{"name":"rubocop","old_version":"1.80.1","new_version":"1.82.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"actioncable","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"addressable","old_version":"2.8.7","new_version":"2.8.8","repository_url":"https://github.com/sporkmonger/addressable"},{"name":"benchmark","old_version":"0.4.1","new_version":"0.5.0","repository_url":"https://github.com/ruby/benchmark"},{"name":"bigdecimal","old_version":"3.2.2","new_version":"4.0.1","repository_url":"https://github.com/ruby/bigdecimal"},{"name":"cgi","old_version":"0.5.0","new_version":"0.5.1","repository_url":"https://github.com/ruby/cgi"},{"name":"concurrent-ruby","old_version":"1.3.5","new_version":"1.3.6","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"},{"name":"connection_pool","old_version":"2.5.4","new_version":"2.5.5","repository_url":"https://github.com/mperham/connection_pool"},{"name":"date","old_version":"3.4.1","new_version":"3.5.1","repository_url":"https://github.com/ruby/date"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"i18n","old_version":"1.14.7","new_version":"1.14.8","repository_url":"https://github.com/ruby-i18n/i18n"},{"name":"io-console","old_version":"0.8.1","new_version":"0.8.2","repository_url":"https://github.com/ruby/io-console"},{"name":"json","old_version":"2.13.2","new_version":"2.18.0","repository_url":"https://github.com/ruby/json"},{"name":"loofah","old_version":"2.24.1","new_version":"2.25.0","repository_url":"https://github.com/flavorjones/loofah"},{"name":"mail","old_version":"2.8.1","new_version":"2.9.0","repository_url":"https://github.com/mikel/mail"},{"name":"marcel","old_version":"1.0.4","new_version":"1.1.0","repository_url":"https://github.com/rails/marcel"},{"name":"minitest","old_version":"5.25.5","new_version":"5.27.0","repository_url":"https://github.com/minitest/minitest"},{"name":"net-imap","old_version":"0.5.10","new_version":"0.5.13","repository_url":"https://github.com/ruby/net-imap"},{"name":"nio4r","old_version":"2.7.4","new_version":"2.7.5","repository_url":"https://github.com/socketry/nio4r"},{"name":"nokogiri","old_version":"1.18.9","new_version":"1.18.10","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"parser","old_version":"3.3.9.0","new_version":"3.3.10.0","repository_url":"https://github.com/whitequark/parser"},{"name":"pp","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/ruby/pp"},{"name":"prism","old_version":"1.4.0","new_version":"1.7.0","repository_url":"https://github.com/ruby/prism"},{"name":"psych","old_version":"5.2.6","new_version":"5.3.1","repository_url":"https://github.com/ruby/psych"},{"name":"rack","old_version":"3.1.16","new_version":"3.2.4","repository_url":"https://github.com/rack/rack"},{"name":"rackup","old_version":"2.2.1","new_version":"2.3.1","repository_url":"https://github.com/rack/rackup"},{"name":"railties","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"},{"name":"rdoc","old_version":"6.14.2","new_version":"7.0.1","repository_url":"https://github.com/ruby/rdoc"},{"name":"regexp_parser","old_version":"2.11.2","new_version":"2.11.3","repository_url":"https://github.com/ammar/regexp_parser"},{"name":"reline","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/ruby/reline"},{"name":"rexml","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"rspec-core","old_version":"3.13.5","new_version":"3.13.6","repository_url":"https://github.com/rspec/rspec"},{"name":"rspec-mocks","old_version":"3.13.5","new_version":"3.13.7","repository_url":"https://github.com/rspec/rspec"},{"name":"rspec-support","old_version":"3.13.5","new_version":"3.13.6","repository_url":"https://github.com/rspec/rspec"},{"name":"rubocop-ast","old_version":"1.46.0","new_version":"1.48.0","repository_url":"https://github.com/rubocop/rubocop-ast"},{"name":"stringio","old_version":"3.1.7","new_version":"3.2.0","repository_url":"https://github.com/ruby/stringio"},{"name":"timeout","old_version":"0.4.3","new_version":"0.6.0","repository_url":"https://github.com/ruby/timeout"},{"name":"unicode-display_width","old_version":"3.1.5","new_version":"3.2.0","repository_url":"https://github.com/janlelis/unicode-display_width"},{"name":"unicode-emoji","old_version":"4.0.4","new_version":"4.2.0","repository_url":"https://github.com/janlelis/unicode-emoji"}],"path":null,"ecosystem":"rubygems"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the production-dependencies group with 54 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [irb](https://github.com/ruby/irb) | `1.15.2` | `1.16.0` |\n| [rails](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [rake](https://github.com/ruby/rake) | `13.3.0` | `13.3.1` |\n| [rspec](https://github.com/rspec/rspec) | `3.13.1` | `3.13.2` |\n| [bundler-audit](https://github.com/rubysec/bundler-audit) | `0.9.2` | `0.9.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.80.1` | `1.82.0` |\n| [actioncable](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionmailbox](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionmailer](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionpack](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actiontext](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [actionview](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activejob](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activemodel](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activerecord](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activestorage](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [activesupport](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [addressable](https://github.com/sporkmonger/addressable) | `2.8.7` | `2.8.8` |\n| [benchmark](https://github.com/ruby/benchmark) | `0.4.1` | `0.5.0` |\n| [bigdecimal](https://github.com/ruby/bigdecimal) | `3.2.2` | `4.0.1` |\n| [cgi](https://github.com/ruby/cgi) | `0.5.0` | `0.5.1` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.5` | `1.3.6` |\n| [connection_pool](https://github.com/mperham/connection_pool) | `2.5.4` | `2.5.5` |\n| [date](https://github.com/ruby/date) | `3.4.1` | `3.5.1` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [i18n](https://github.com/ruby-i18n/i18n) | `1.14.7` | `1.14.8` |\n| [io-console](https://github.com/ruby/io-console) | `0.8.1` | `0.8.2` |\n| [json](https://github.com/ruby/json) | `2.13.2` | `2.18.0` |\n| [loofah](https://github.com/flavorjones/loofah) | `2.24.1` | `2.25.0` |\n| [mail](https://github.com/mikel/mail) | `2.8.1` | `2.9.0` |\n| [marcel](https://github.com/rails/marcel) | `1.0.4` | `1.1.0` |\n| [minitest](https://github.com/minitest/minitest) | `5.25.5` | `5.27.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.10` | `0.5.13` |\n| [nio4r](https://github.com/socketry/nio4r) | `2.7.4` | `2.7.5` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.9` | `1.18.10` |\n| [parser](https://github.com/whitequark/parser) | `3.3.9.0` | `3.3.10.0` |\n| [pp](https://github.com/ruby/pp) | `0.6.2` | `0.6.3` |\n| [prism](https://github.com/ruby/prism) | `1.4.0` | `1.7.0` |\n| [psych](https://github.com/ruby/psych) | `5.2.6` | `5.3.1` |\n| [rack](https://github.com/rack/rack) | `3.1.16` | `3.2.4` |\n| [rackup](https://github.com/rack/rackup) | `2.2.1` | `2.3.1` |\n| [railties](https://github.com/rails/rails) | `7.2.2.2` | `7.2.3` |\n| [rdoc](https://github.com/ruby/rdoc) | `6.14.2` | `7.0.1` |\n| [regexp_parser](https://github.com/ammar/regexp_parser) | `2.11.2` | `2.11.3` |\n| [reline](https://github.com/ruby/reline) | `0.6.2` | `0.6.3` |\n| [rexml](https://github.com/ruby/rexml) | `3.4.2` | `3.4.4` |\n| [rspec-core](https://github.com/rspec/rspec) | `3.13.5` | `3.13.6` |\n| [rspec-mocks](https://github.com/rspec/rspec) | `3.13.5` | `3.13.7` |\n| [rspec-support](https://github.com/rspec/rspec) | `3.13.5` | `3.13.6` |\n| [rubocop-ast](https://github.com/rubocop/rubocop-ast) | `1.46.0` | `1.48.0` |\n| [stringio](https://github.com/ruby/stringio) | `3.1.7` | `3.2.0` |\n| [timeout](https://github.com/ruby/timeout) | `0.4.3` | `0.6.0` |\n| [unicode-display_width](https://github.com/janlelis/unicode-display_width) | `3.1.5` | `3.2.0` |\n| [unicode-emoji](https://github.com/janlelis/unicode-emoji) | `4.0.4` | `4.2.0` |\n\nUpdates `irb` from 1.15.2 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/irb/releases\"\u003eirb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--context-mode 5\u003c/code\u003e: evaluates inside Ruby::Box by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1142\"\u003eruby/irb#1142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid creating method objects unnecessarily when distinguishing between commands and statements. by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1138\"\u003eruby/irb#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow-source should not raise error even if line_no is wrong by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1145\"\u003eruby/irb#1145\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🛠 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin power_assert to v2 for Ruby 2.7 (v3 requires 3.1+) by \u003ca href=\"https://github.com/ima1zumi\"\u003e\u003ccode\u003e@​ima1zumi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1135\"\u003eruby/irb#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot; Pin power_assert to v2 for Ruby 2.7 (v3 requires 3.1+)\u0026quot; by \u003ca href=\"https://github.com/ima1zumi\"\u003e\u003ccode\u003e@​ima1zumi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1136\"\u003eruby/irb#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.13.1 to 2.13.2 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/ruby/irb/pull/1137\"\u003eruby/irb#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange platform mswin to nil by \u003ca href=\"https://github.com/ima1zumi\"\u003e\u003ccode\u003e@​ima1zumi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1139\"\u003eruby/irb#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test to check for UTF16LE/BE by \u003ca href=\"https://github.com/alexanderadam\"\u003e\u003ccode\u003e@​alexanderadam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1132\"\u003eruby/irb#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect usage for -w. It turns ON warnings, not OFF. by \u003ca href=\"https://github.com/zenspider\"\u003e\u003ccode\u003e@​zenspider\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1141\"\u003eruby/irb#1141\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/ruby/irb/pull/1143\"\u003eruby/irb#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5.0.1 to 6.0.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/ruby/irb/pull/1144\"\u003eruby/irb#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate rc-files documentation by \u003ca href=\"https://github.com/eval\"\u003e\u003ccode\u003e@​eval\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1113\"\u003eruby/irb#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.13.2 to 2.13.3 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/ruby/irb/pull/1147\"\u003eruby/irb#1147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 6.0.0 to 6.0.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/ruby/irb/pull/1146\"\u003eruby/irb#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecall Thread.pass just after Thread.stop 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/irb/pull/1148\"\u003eruby/irb#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump step-security/harden-runner from 2.13.3 to 2.14.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/ruby/irb/pull/1149\"\u003eruby/irb#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 1.16.0 by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1150\"\u003eruby/irb#1150\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/zenspider\"\u003e\u003ccode\u003e@​zenspider\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1141\"\u003eruby/irb#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1148\"\u003eruby/irb#1148\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/irb/compare/v1.15.3...v1.16.0\"\u003ehttps://github.com/ruby/irb/compare/v1.15.3...v1.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.15.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all internal frames from a backtrace 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/irb/pull/1106\"\u003eruby/irb#1106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove prompt generating performance by caching prompt parts(%m, %M) by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1127\"\u003eruby/irb#1127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not save consecutive duplicate commands to history by \u003ca href=\"https://github.com/topalovic\"\u003e\u003ccode\u003e@​topalovic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1120\"\u003eruby/irb#1120\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle keyword local variables correctly by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1085\"\u003eruby/irb#1085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nil error on debugger prompt by \u003ca href=\"https://github.com/muno92\"\u003e\u003ccode\u003e@​muno92\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1097\"\u003eruby/irb#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix methods defined with invalid encoding are not displayed in completion by \u003ca href=\"https://github.com/ksaito422\"\u003e\u003ccode\u003e@​ksaito422\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1101\"\u003eruby/irb#1101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix show_source command when obj.method is overrided by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1111\"\u003eruby/irb#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset IOGate.set_winch_handler when dancing ruby easter-egg terminates by \u003ca href=\"https://github.com/tompng\"\u003e\u003ccode\u003e@​tompng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1124\"\u003eruby/irb#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UTF-16 autocompletion by \u003ca href=\"https://github.com/alexanderadam\"\u003e\u003ccode\u003e@​alexanderadam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1129\"\u003eruby/irb#1129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[DOC] Fix link 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/irb/pull/1112\"\u003eruby/irb#1112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🛠 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid intermediate array from split by \u003ca href=\"https://github.com/Maumagnaguagno\"\u003e\u003ccode\u003e@​Maumagnaguagno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/irb/pull/1093\"\u003eruby/irb#1093\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/irb/commit/10ed4a777ba80457aa8075b36f3c904787c3fbde\"\u003e\u003ccode\u003e10ed4a7\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.0 (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/6d3306bbdb75686dd555be3e759f0580ed613cca\"\u003e\u003ccode\u003e6d3306b\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.13.3 to 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/a4d7be961a6dd62c3c0e85e6338b12f6f5e1f469\"\u003e\u003ccode\u003ea4d7be9\u003c/code\u003e\u003c/a\u003e call Thread.pass just after Thread.stop (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/1b3bcc3d0be728f6a055c642f920882a948d002c\"\u003e\u003ccode\u003e1b3bcc3\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/3b04bb3b8c86f833fa0e7838924a6c20af565538\"\u003e\u003ccode\u003e3b04bb3\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.13.2 to 2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/e204f8536feebd512ea162e698b0f9ea3c8a2325\"\u003e\u003ccode\u003ee204f85\u003c/code\u003e\u003c/a\u003e Update rc-files documentation (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1113\"\u003e#1113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/847d1ca9d189c6902a7f7beccc9132ce28b626b2\"\u003e\u003ccode\u003e847d1ca\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--context-mode 5\u003c/code\u003e: evaluates inside Ruby::Box (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/6d7ff966b377b559c210258cf3f5f36c2f76e98b\"\u003e\u003ccode\u003e6d7ff96\u003c/code\u003e\u003c/a\u003e Show-source should not raise error even if line_no is wrong (\u003ca href=\"https://redirect.github.com/ruby/irb/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/feeb7be6795271f51e5c3d75f45eacdb491a34fa\"\u003e\u003ccode\u003efeeb7be\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/irb/commit/0aad10b1b4622e8f764e3b9ec80f3f8c10049921\"\u003e\u003ccode\u003e0aad10b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/irb/compare/v1.15.2...v1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 7.2.2.2 to 7.2.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\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd7d30ea583def238a0d9c52150ae1aa4b88c007\"\u003e\u003ccode\u003efd7d30e\u003c/code\u003e\u003c/a\u003e Upgrade sigstore gem to 0.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/40e5415d3f35878f47a521779f291284428aaff5\"\u003e\u003ccode\u003e40e5415\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3245de17c04c21abdf3efc76a3bf21dc0d773033\"\u003e\u003ccode\u003e3245de1\u003c/code\u003e\u003c/a\u003e Add sigstore-cli gem to the releaser toolset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/35ad36a398b44d10817ae13ec61f68af30c47efe\"\u003e\u003ccode\u003e35ad36a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55969\"\u003e#55969\u003c/a\u003e from rails/fix-explain-tests-mysql-9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3690a3ab882476c5229c04c5ae993ba6fb469fc4\"\u003e\u003ccode\u003e3690a3a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55966\"\u003e#55966\u003c/a\u003e from alexanderadam/doc/remove_subclasses_documentat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/33f90433c535abc650b7de1e99fa3f5c1bd5313c\"\u003e\u003ccode\u003e33f9043\u003c/code\u003e\u003c/a\u003e Disable GCS tests in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ebd0cfc6750db6fe3909e8e2c4cfeabb195ead32\"\u003e\u003ccode\u003eebd0cfc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c4d7af0d6639d834c33296886befd6ee6d805038\"\u003e\u003ccode\u003ec4d7af0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55948\"\u003e#55948\u003c/a\u003e from zzak/debug-rails-new-docker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ed5ecc8bc9dac099188c454e813c96b2da133b8\"\u003e\u003ccode\u003e1ed5ecc\u003c/code\u003e\u003c/a\u003e Use NPM trusted publishing for our NPM packages\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.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.0 to 13.3.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/f0001c3eeada8220f2976170876c75d21ed0626f\"\u003e\u003ccode\u003ef0001c3\u003c/code\u003e\u003c/a\u003e v13.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/a644c808b98692cab776734ab92397df5e2de48b\"\u003e\u003ccode\u003ea644c80\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/483\"\u003e#483\u003c/a\u003e from luke-gru/fix_test_warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/2465ea541d6d721e3e03cd4a75594928032a8731\"\u003e\u003ccode\u003e2465ea5\u003c/code\u003e\u003c/a\u003e silence warnings during execution of rake tasks in Rakefile (ex: rake test)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/df25fb13f015c0f5ff8e7e46e71c28df33ebf34b\"\u003e\u003ccode\u003edf25fb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/610\"\u003e#610\u003c/a\u003e from pvdb/fix_testhelper_require\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/ec12ac969b708ba2488f02c164b8581f3f828922\"\u003e\u003ccode\u003eec12ac9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/635\"\u003e#635\u003c/a\u003e from nevans/deconstruct_keys-for-nil-keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/4664a69fcac064c1f727c8fc99f366958fa3a08b\"\u003e\u003ccode\u003e4664a69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/666\"\u003e#666\u003c/a\u003e from ruby/dependabot/github_actions/ruby/setup-ruby-1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/7a0bf15a81e7d3508e33de4d9398ae640bb50d68\"\u003e\u003ccode\u003e7a0bf15\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.265.0 to 1.266.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/b3ed7892ad1bc15aed7dbb4c02038d8088fad5f6\"\u003e\u003ccode\u003eb3ed789\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/665\"\u003e#665\u003c/a\u003e from ruby/dependabot/github_actions/ruby/setup-ruby-1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/1e7ef52f75be42cbe611e14d8efd7bcd62472a86\"\u003e\u003ccode\u003e1e7ef52\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.263.0 to 1.265.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/77225e17c0675d5d2adc40e267291ebffa0c38e0\"\u003e\u003ccode\u003e77225e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/664\"\u003e#664\u003c/a\u003e from ruby/dependabot/github_actions/ruby/setup-ruby-1...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/rake/compare/v13.3.0...v13.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec` from 3.13.1 to 3.13.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec/commit/ce5fe4f6521eb957f02e088a1c4c4f778a5c825e\"\u003e\u003ccode\u003ece5fe4f\u003c/code\u003e\u003c/a\u003e rspec-v3.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec/commit/1cb85173086166471482da39db32ba816b326ca6\"\u003e\u003ccode\u003e1cb8517\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/270\"\u003e#270\u003c/a\u003e from bquorning/fix-rspec-source_code_uri\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rspec/rspec/compare/rspec-v3.13.1...rspec-v3.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bundler-audit` from 0.9.2 to 0.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubysec/bundler-audit/releases\"\u003ebundler-audit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.9.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Ruby 3.4, 3.5, and 4.0.\u003c/li\u003e\n\u003cli\u003eAdded support for Bundler 4.x.\u003c/li\u003e\n\u003cli\u003eFixed typos in API documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCLI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that the \u003ccode\u003ebundler-audit check\u003c/code\u003e command honors the \u003ccode\u003eBUNDLER_AUDIT_DB\u003c/code\u003e environment variable.\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/rubysec/bundler-audit/blob/master/ChangeLog.md\"\u003ebundler-audit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e0.9.3 / 2025-11-28\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Ruby 3.4, 3.5, and 4.0.\u003c/li\u003e\n\u003cli\u003eAdded support for Bundler 4.x.\u003c/li\u003e\n\u003cli\u003eFixed typos in API documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eCLI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that the \u003ccode\u003ebundler-audit check\u003c/code\u003e command honors the\n\u003ccode\u003eBUNDLER_AUDIT_DB\u003c/code\u003e environment variable.\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/rubysec/bundler-audit/commit/f8b06ebbefdd223e6eb21b9b258d75e6cfa9442a\"\u003e\u003ccode\u003ef8b06eb\u003c/code\u003e\u003c/a\u003e Updated the ChangeLog for 0.9.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/e4fb10a23229445b55fd0cbd2357b7e688519b1d\"\u003e\u003ccode\u003ee4fb10a\u003c/code\u003e\u003c/a\u003e Version bump to 0.9.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/34cd522d0a6c2e1957604d6f6c7239a9726b1b64\"\u003e\u003ccode\u003e34cd522\u003c/code\u003e\u003c/a\u003e Added Ruby 4.0 to the CI matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/22da9d769d3d98e7fa401764d2689e60dcf71efa\"\u003e\u003ccode\u003e22da9d7\u003c/code\u003e\u003c/a\u003e Added Ruby 3.5 to the CI matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/0c2afaf48aea1b852bce5a877c1d6ec866a6c1d4\"\u003e\u003ccode\u003e0c2afaf\u003c/code\u003e\u003c/a\u003e Require rubygems-tasks ~\u0026gt; 0.3 for Ruby 3.5 and 4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/309d20356a7ea435d0f92982b6fcb2a4bd57db66\"\u003e\u003ccode\u003e309d203\u003c/code\u003e\u003c/a\u003e Allow using bundler 4.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/d40dc751d0e789791751d6b62a1006daf8c150c4\"\u003e\u003ccode\u003ed40dc75\u003c/code\u003e\u003c/a\u003e Remove syntax highlighting from example output.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/91a912f69ce7df580731bc79aea64c7699b470b7\"\u003e\u003ccode\u003e91a912f\u003c/code\u003e\u003c/a\u003e Be consistent and only use markdown code fences.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/fc1bc0aa2cb0ea6a075daf39dd6cc02a3234266d\"\u003e\u003ccode\u003efc1bc0a\u003c/code\u003e\u003c/a\u003e Fixed typo in \u003ccode\u003e@return\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubysec/bundler-audit/commit/276e0652d075686d66ca626705d4d475be697242\"\u003e\u003ccode\u003e276e065\u003c/code\u003e\u003c/a\u003e Update RubyGems in GitHub Actions CI (\u003ca href=\"https://redirect.github.com/rubysec/bundler-audit/issues/406\"\u003e#406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubysec/bundler-audit/compare/v0.9.2...v0.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.80.1 to 1.82.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.82.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14655\"\u003e#14655\u003c/a\u003e: Add \u003ccode\u003eAllowRBSInlineAnnotation\u003c/code\u003e option to \u003ccode\u003eLayout/LineLength\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14569\"\u003e#14569\u003c/a\u003e: Add \u003ccode\u003eIncludedMacroPatterns\u003c/code\u003e configuration option to \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e for pattern-based macro method enforcement. (\u003ca href=\"https://github.com/mmenanno\"\u003e\u003ccode\u003e@​mmenanno\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14670\"\u003e#14670\u003c/a\u003e: Add new cop \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14644\"\u003e#14644\u003c/a\u003e: Support \u003ccode\u003eTargetRubyVersion 4.0\u003c/code\u003e (experimental). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14649\"\u003e#14649\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when there are literals in multiple branches. (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14678\"\u003e#14678\u003c/a\u003e: Fix an error when running deprecated \u003ccode\u003erake rubocop:auto_correct\u003c/code\u003e task. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14650\"\u003e#14650\u003c/a\u003e: Fix wrong autocorrect for \u003ccode\u003eLint/RedundantSplatExpansion\u003c/code\u003e when splatting a single literal. (\u003ca href=\"https://github.com/earlopain\"\u003e\u003ccode\u003e@​earlopain\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14703\"\u003e#14703\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/RescueEnsureAlignment\u003c/code\u003e when using self class definition. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14706\"\u003e#14706\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/NoReturnInBeginEndBlocks\u003c/code\u003e when assigning instance variable, class variable, global variable, or constant. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14715\"\u003e#14715\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when a guard clause follows a multiline heredoc in a parenthesized method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14667\"\u003e#14667\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a safe navigation method call is aligned. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14688\"\u003e#14688\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a numbered block or \u003ccode\u003eit\u003c/code\u003e block method call is aligned. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14699\"\u003e#14699\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when the receiver is used outside the singleton method definition scope. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14663\"\u003e#14663\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when multiline or xstring heredoc is used in method body. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10173\"\u003e#10173\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e when \u003ccode\u003eEnforcedStyleForMultiline\u003c/code\u003e is set to \u003ccode\u003econsistent_comma\u003c/code\u003e and a multiline braced hash argument appears after another argument. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14680\"\u003e#14680\u003c/a\u003e: Handle all \u003ccode\u003eOptionParser\u003c/code\u003e errors when running \u003ccode\u003erubocop\u003c/code\u003e with input that causes an error. (\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14658\"\u003e#14658\u003c/a\u003e: Fix incorrect behavior when \u003ccode\u003eLayout/LineLength\u003c/code\u003e is disabled. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14704\"\u003e#14704\u003c/a\u003e: Fix incorrect Position character value in LSP. (\u003ca href=\"https://github.com/tmtm\"\u003e\u003ccode\u003e@​tmtm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14619\"\u003e#14619\u003c/a\u003e: Store remote configuration caches in cache root. ([\u003ca href=\"https://github.com/Jack12816\"\u003e\u003ccode\u003e@​Jack12816\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14476\"\u003e#14476\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e to skip compact style definitions inside another class or module when \u003ccode\u003eEnforcedStyle: nested\u003c/code\u003e. ([\u003ca href=\"https://github.com/rscq\"\u003e\u003ccode\u003e@​rscq\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14281\"\u003e#14281\u003c/a\u003e: Update \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e with \u003ccode\u003eEnforcedStyleAlignWith: variable\u003c/code\u003e to handle conditionals inside \u003ccode\u003ebegin\u003c/code\u003e nodes properly. (\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14662\"\u003e#14662\u003c/a\u003e: Add autocorrection for \u003ccode\u003eLint/UselessOr\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14668\"\u003e#14668\u003c/a\u003e: Exclude \u003ccode\u003eSeverity\u003c/code\u003e from configuration parameters. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14684\"\u003e#14684\u003c/a\u003e: Make \u003ccode\u003eStyle/CaseEquality\u003c/code\u003e allow regexp case equality where the receiver is a regexp literal. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14645\"\u003e#14645\u003c/a\u003e: Change \u003ccode\u003eLint/CircularArgumentReference\u003c/code\u003e to detect offenses within long assignment chains. (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14642\"\u003e#14642\u003c/a\u003e: Make \u003ccode\u003eGemspec/RubyVersionGlobalsUsage\u003c/code\u003e aware of \u003ccode\u003eRuby::VERSION\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14695\"\u003e#14695\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e aware of \u003ccode\u003e# rbs_inline\u003c/code\u003e magic comment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10147\"\u003e#10147\u003c/a\u003e: Make \u003ccode\u003eLint/ElseLayout\u003c/code\u003e allow a single-line \u003ccode\u003eelse\u003c/code\u003e body in \u003ccode\u003ethen\u003c/code\u003e single-line conditional. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14661\"\u003e#14661\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantRequireStatement\u003c/code\u003e aware of \u003ccode\u003epathname\u003c/code\u003e when analyzing Ruby 4.0. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14698\"\u003e#14698\u003c/a\u003e: Make \u003ccode\u003eLint/UnreachableCode\u003c/code\u003e aware of singleton method redefinition. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14677\"\u003e#14677\u003c/a\u003e: Make \u003ccode\u003eStyle/RedundantArgument\u003c/code\u003e aware of \u003ccode\u003eto_i\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14660\"\u003e#14660\u003c/a\u003e: Rename \u003ccode\u003eIgnoreCopDirectives\u003c/code\u003e to \u003ccode\u003eAllowCopDirectives\u003c/code\u003e in \u003ccode\u003eLayout/LineLength\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e: Revert \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e, which added support for LSP positionEncoding 'utf-8' and 'utf-32' due to critical performance regression reports. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.82.0 (2025-12-17)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14655\"\u003e#14655\u003c/a\u003e: Add \u003ccode\u003eAllowRBSInlineAnnotation\u003c/code\u003e option to \u003ccode\u003eLayout/LineLength\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14569\"\u003e#14569\u003c/a\u003e: Add \u003ccode\u003eIncludedMacroPatterns\u003c/code\u003e configuration option to \u003ccode\u003eStyle/MethodCallWithArgsParentheses\u003c/code\u003e for pattern-based macro method enforcement. ([\u003ca href=\"https://github.com/mmenanno\"\u003e\u003ccode\u003e@​mmenanno\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14670\"\u003e#14670\u003c/a\u003e: Add new cop \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14644\"\u003e#14644\u003c/a\u003e: Support \u003ccode\u003eTargetRubyVersion 4.0\u003c/code\u003e (experimental). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14649\"\u003e#14649\u003c/a\u003e: Fix an error for \u003ccode\u003eLint/LiteralAsCondition\u003c/code\u003e when there are literals in multiple branches. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14678\"\u003e#14678\u003c/a\u003e: Fix an error when running deprecated \u003ccode\u003erake rubocop:auto_correct\u003c/code\u003e task. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14650\"\u003e#14650\u003c/a\u003e: Fix wrong autocorrect for \u003ccode\u003eLint/RedundantSplatExpansion\u003c/code\u003e when splatting a single literal. ([\u003ca href=\"https://github.com/earlopain\"\u003e\u003ccode\u003e@​earlopain\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14703\"\u003e#14703\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLayout/RescueEnsureAlignment\u003c/code\u003e when using self class definition. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14706\"\u003e#14706\u003c/a\u003e: Fix false negatives for \u003ccode\u003eLint/NoReturnInBeginEndBlocks\u003c/code\u003e when assigning instance variable, class variable, global variable, or constant. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14715\"\u003e#14715\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e when a guard clause follows a multiline heredoc in a parenthesized method call. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14667\"\u003e#14667\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a safe navigation method call is aligned. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14688\"\u003e#14688\u003c/a\u003e: Fix false positives for \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e when a conditional assignment is used on the same line and the \u003ccode\u003eend\u003c/code\u003e with a numbered block or \u003ccode\u003eit\u003c/code\u003e block method call is aligned. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14699\"\u003e#14699\u003c/a\u003e: Fix false positives for \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when the receiver is used outside the singleton method definition scope. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14663\"\u003e#14663\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/EndlessMethod\u003c/code\u003e when multiline or xstring heredoc is used in method body. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10173\"\u003e#10173\u003c/a\u003e: Fix false positives for \u003ccode\u003eStyle/TrailingCommaInArguments\u003c/code\u003e when \u003ccode\u003eEnforcedStyleForMultiline\u003c/code\u003e is set to \u003ccode\u003econsistent_comma\u003c/code\u003e and a multiline braced hash argument appears after another argument. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14680\"\u003e#14680\u003c/a\u003e: Handle all \u003ccode\u003eOptionParser\u003c/code\u003e errors when running \u003ccode\u003erubocop\u003c/code\u003e with input that causes an error. ([\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14658\"\u003e#14658\u003c/a\u003e: Fix incorrect behavior when \u003ccode\u003eLayout/LineLength\u003c/code\u003e is disabled. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14704\"\u003e#14704\u003c/a\u003e: Fix incorrect Position character value in LSP. ([\u003ca href=\"https://github.com/tmtm\"\u003e\u003ccode\u003e@​tmtm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14619\"\u003e#14619\u003c/a\u003e: Store remote configuration caches in cache root. ([\u003ca href=\"https://github.com/Jack12816\"\u003e\u003ccode\u003e@​Jack12816\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14476\"\u003e#14476\u003c/a\u003e: Fix \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e to skip compact style definitions inside another class or module when \u003ccode\u003eEnforcedStyle: nested\u003c/code\u003e. ([\u003ca href=\"https://github.com/rscq\"\u003e\u003ccode\u003e@​rscq\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14281\"\u003e#14281\u003c/a\u003e: Update \u003ccode\u003eLayout/EndAlignment\u003c/code\u003e with \u003ccode\u003eEnforcedStyleAlignWith: variable\u003c/code\u003e to handle conditionals inside \u003ccode\u003ebegin\u003c/code\u003e nodes properly. ([\u003ca href=\"https://github.com/dvandersluis\"\u003e\u003ccode\u003e@​dvandersluis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14662\"\u003e#14662\u003c/a\u003e: Add autocorrection for \u003ccode\u003eLint/UselessOr\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14668\"\u003e#14668\u003c/a\u003e: Exclude \u003ccode\u003eSeverity\u003c/code\u003e from configuration parameters. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14684\"\u003e#14684\u003c/a\u003e: Make \u003ccode\u003eStyle/CaseEquality\u003c/code\u003e allow regexp case equality where the receiver is a regexp literal. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14645\"\u003e#14645\u003c/a\u003e: Change \u003ccode\u003eLint/CircularArgumentReference\u003c/code\u003e to detect offenses within long assignment chains. ([\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14642\"\u003e#14642\u003c/a\u003e: Make \u003ccode\u003eGemspec/RubyVersionGlobalsUsage\u003c/code\u003e aware of \u003ccode\u003eRuby::VERSION\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14695\"\u003e#14695\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterMagicComment\u003c/code\u003e aware of \u003ccode\u003e# rbs_inline\u003c/code\u003e magic comment. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10147\"\u003e#10147\u003c/a\u003e: Make \u003ccode\u003eLint/ElseLayout\u003c/code\u003e allow a single-line \u003ccode\u003eelse\u003c/code\u003e body in \u003ccode\u003ethen\u003c/code\u003e single-line conditional. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14661\"\u003e#14661\u003c/a\u003e: Make \u003ccode\u003eLint/RedundantRequireStatement\u003c/code\u003e aware of \u003ccode\u003epathname\u003c/code\u003e when analyzing Ruby 4.0. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14698\"\u003e#14698\u003c/a\u003e: Make \u003ccode\u003eLint/UnreachableCode\u003c/code\u003e aware of singleton method redefinition. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14677\"\u003e#14677\u003c/a\u003e: Make \u003ccode\u003eStyle/RedundantArgument\u003c/code\u003e aware of \u003ccode\u003eto_i\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/14660\"\u003e#14660\u003c/a\u003e: Rename \u003ccode\u003eIgnoreCopDirectives\u003c/code\u003e to \u003ccode\u003eAllowCopDirectives\u003c/code\u003e in \u003ccode\u003eLayout/LineLength\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e: Revert \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14492\"\u003e#14492\u003c/a\u003e, which added support for LSP positionEncoding 'utf-8' and 'utf-32' due to critical performance regression reports. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.81.7 (2025-10-31)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14597\"\u003e#14597\u003c/a\u003e: Fix an infinite loop error for \u003ccode\u003eLayout/HashAlignment\u003c/code\u003e when \u003ccode\u003eEnforcedStyle: with_fixed_indentation\u003c/code\u003e is specified for \u003ccode\u003eLayout/ArgumentAlignment\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14621\"\u003e#14621\u003c/a\u003e: Fix an error for \u003ccode\u003eNaming/PredicateMethod\u003c/code\u003e when using an \u003ccode\u003ein\u003c/code\u003e pattern with empty parentheses body. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\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/rubocop/rubocop/commit/384aa2b4ed79bad806e0f884e1039dab56d3cfbf\"\u003e\u003ccode\u003e384aa2b\u003c/code\u003e\u003c/a\u003e Cut 1.82\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f8a84fa41beb247504ffc2c78dd1b49f1480a7db\"\u003e\u003ccode\u003ef8a84fa\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f8b40bc5f4a7998276fe6ff650d9cf55d8dfbb7d\"\u003e\u003ccode\u003ef8b40bc\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/13854\"\u003e#13854\u003c/a\u003e (Old issue)] add push/pop logic for handle local enable/disable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/70f76b1ea0ae0eed8c8014f68f8667b7bd00349c\"\u003e\u003ccode\u003e70f76b1\u003c/code\u003e\u003c/a\u003e Add new cop Style/ModuleMemberExistenceCheck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/acbdbda132566818747f375b75111fc20340febe\"\u003e\u003ccode\u003eacbdbda\u003c/code\u003e\u003c/a\u003e Fix false positives for \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/9cc142e04f19802c4ce92ab33f18dd680601f895\"\u003e\u003ccode\u003e9cc142e\u003c/code\u003e\u003c/a\u003e Fix incorrect Position character value in LSP\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5e07aa1001b41acc4594f81c2ebcf5de9be4dcfd\"\u003e\u003ccode\u003e5e07aa1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14712\"\u003e#14712\u003c/a\u003e from moznion/fix_escaped_single_quote\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/8f5b029fea2dc94fa75f2d8820058d29f0c7c8e7\"\u003e\u003ccode\u003e8f5b029\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14711\"\u003e#14711\u003c/a\u003e] Fix broken auto-correction in \u003ccode\u003eStyle/RedundantRegexpArgument\u003c/code\u003e rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/bcfdf5fadecf8126893fe2fb89f2634e7fe987c9\"\u003e\u003ccode\u003ebcfdf5f\u003c/code\u003e\u003c/a\u003e Add some specs for \u003ccode\u003eStyle/RedundantCondition\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2c9071d5764d728ad11e821dd338fe33371b5ca3\"\u003e\u003ccode\u003e2c9071d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14707\"\u003e#14707\u003c/a\u003e from koic/fix_false_negatives_for_lint_no_return_in...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.80.1...v1.82.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 7.2.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/97a940b21dc3f1ad53bc2cee4b2dafcf31d6ea8a\"\u003e\u003ccode\u003e97a940b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4157aaffc767cfe45a9539b79c290a5137b4ea6b\"\u003e\u003ccode\u003e4157aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/05bd95c36b04572f577eb06e1c96dfe6106da161\"\u003e\u003ccode\u003e05bd95c\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d19ccb2908cef464151fbe42003113379673fbf4\"\u003e\u003ccode\u003ed19ccb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1d8b402cd608462cfc0abd4d53ddab40f7a65af4\"\u003e\u003ccode\u003e1d8b402\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a40b1973731784c7fb24fdb7068acabe12a472d2\"\u003e\u003ccode\u003ea40b197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54531\"\u003e#54531\u003c/a\u003e from byroot/action-cable-upgrade-safari\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 7.2.2.2 to 7.2.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b5a9a37ecafd4add60e1677ca3c248b020909c6d\"\u003e\u003ccode\u003eb5a9a37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55809\"\u003e#55809\u003c/a\u003e from zzak/8-0-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3de277f5fb09b0f46f4b62b3f85c6c9a463ef58f\"\u003e\u003ccode\u003e3de277f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 7.2.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4f459cff2831d8beffb3114db99bd41f6202a5d6\"\u003e\u003ccode\u003e4f459cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1aa5cfef91923a6e41c1cd11f132797ed482fb8e\"\u003e\u003ccode\u003e1aa5cfe\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 7.2.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/40e5415d3f35878f47a521779f291284428aaff5\"\u003e\u003ccode\u003e40e5415\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ebd0cfc6750db6fe3909e8e2c4cfeabb195ead32\"\u003e\u003ccode\u003eebd0cfc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a0dee36d388c6fd2c2aa817566aedb59c6c1f9a7\"\u003e\u003ccode\u003ea0dee36\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/50390\"\u003e#50390\u003c/a\u003e from seanpdoyle/issue-50345\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b5a9a37ecafd4add60e1677ca3c248b020909c6d\"\u003e\u003ccode\u003eb5a9a37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55809\"\u003e#55809\u003c/a\u003e from zzak/8-0-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a510a3d216bbde3800a3019c4d9de595e058954b\"\u003e\u003ccode\u003ea510a3d\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a5750f6d20b471fd5749ebf61108a3dedb8698a1\"\u003e\u003ccode\u003ea5750f6\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/237f57301613e68bb2c9ac4115eb7004d6b4c557\"\u003e\u003ccode\u003e237f573\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/48e35d9a038d341db7de28b4a5da93d1f814c91d\"\u003e\u003ccode\u003e48e35d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0a41d35b7d1d7e2cdfe2152ecc3ca6b82d93692a\"\u003e\u003ccode\u003e0a41d35\u003c/code\u003e\u003c/a\u003e Action Pack: Allow rack 3.2.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 7.2.2.2 to 7.2.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d327a48668dc81c34590cbe79754d2ce84ed9ae6\"\u003e\u003ccode\u003ed327a48\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2fa7e4130b89a34440e21c2b63534d9a2f98416\"\u003e\u003ccode\u003eb2fa7e4\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 7.2.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handli...\n\n_Description has been truncated_","html_url":"https://github.com/patrick204nqh/dbwatcher/pull/79","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrick204nqh%2Fdbwatcher/issues/79","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/79/packages"}},{"old_version":"8.0.3","new_version":"8.1.1","update_type":"minor","path":null,"pr_created_at":"2025-11-04T23:03:29.000Z","version_change":"8.0.3 → 8.1.1","issue":{"uuid":"3588391639","node_id":"PR_kwDOCJQbzs6xg9s9","number":8125,"state":"open","title":"build(deps): bump the bundler group with 37 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":"2025-11-04T23:03:29.000Z","updated_at":"2025-11-04T23:04:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler","update_count":37,"packages":[{"name":"rails","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sidekiq","old_version":"8.0.8","new_version":"8.0.9","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"grover","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/Studiosity/grover"},{"name":"govuk_design_system_formbuilder","old_version":"5.11.0","new_version":"5.13.0","repository_url":"https://github.com/x-govuk/govuk-form-builder"},{"name":"govuk-components","old_version":"5.11.3","new_version":"5.13.0","repository_url":"https://github.com/x-govuk/govuk-components"},{"name":"view_component","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"webmock","old_version":"3.26.0","new_version":"3.26.1","repository_url":"https://github.com/bblimke/webmock"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"actioncable","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1178.0","new_version":"1.1180.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.235.0","new_version":"3.236.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-kms","old_version":"1.115.0","new_version":"1.116.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"date","old_version":"3.4.1","new_version":"3.5.0","repository_url":"https://github.com/ruby/date"},{"name":"irb","old_version":"1.15.2","new_version":"1.15.3","repository_url":"https://github.com/ruby/irb"},{"name":"net-http","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/ruby/net-http"},{"name":"nio4r","old_version":"2.7.4","new_version":"2.7.5","repository_url":"https://github.com/socketry/nio4r"},{"name":"rack","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/rack/rack"},{"name":"railties","old_version":"8.0.3","new_version":"8.1.1","repository_url":"https://github.com/rails/rails"},{"name":"rake","old_version":"13.3.0","new_version":"13.3.1","repository_url":"https://github.com/ruby/rake"},{"name":"rdoc","old_version":"6.15.0","new_version":"6.15.1","repository_url":"https://github.com/ruby/rdoc"},{"name":"rspec-mocks","old_version":"3.13.6","new_version":"3.13.7","repository_url":"https://github.com/rspec/rspec"},{"name":"rubyzip","old_version":"3.2.1","new_version":"3.2.2","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"timeout","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/ruby/timeout"},{"name":"uri","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/ruby/uri"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 37 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `6.0.0` | `6.1.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.0.0` | `6.1.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `6.0.0` | `6.1.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.8` | `8.0.9` |\n| [grover](https://github.com/Studiosity/grover) | `1.2.3` | `1.2.4` |\n| [govuk_design_system_formbuilder](https://github.com/x-govuk/govuk-form-builder) | `5.11.0` | `5.13.0` |\n| [govuk-components](https://github.com/x-govuk/govuk-components) | `5.11.3` | `5.13.0` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.0.2` | `4.1.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.26.0` | `3.26.1` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionpack](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actiontext](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [actionview](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activejob](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activemodel](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activerecord](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activestorage](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [activesupport](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1178.0` | `1.1180.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.235.0` | `3.236.0` |\n| [aws-sdk-kms](https://github.com/aws/aws-sdk-ruby) | `1.115.0` | `1.116.0` |\n| [date](https://github.com/ruby/date) | `3.4.1` | `3.5.0` |\n| [irb](https://github.com/ruby/irb) | `1.15.2` | `1.15.3` |\n| [net-http](https://github.com/ruby/net-http) | `0.6.0` | `0.7.0` |\n| [nio4r](https://github.com/socketry/nio4r) | `2.7.4` | `2.7.5` |\n| [rack](https://github.com/rack/rack) | `3.2.3` | `3.2.4` |\n| [railties](https://github.com/rails/rails) | `8.0.3` | `8.1.1` |\n| [rake](https://github.com/ruby/rake) | `13.3.0` | `13.3.1` |\n| [rdoc](https://github.com/ruby/rdoc) | `6.15.0` | `6.15.1` |\n| [rspec-mocks](https://github.com/rspec/rspec) | `3.13.6` | `3.13.7` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `3.2.1` | `3.2.2` |\n| [timeout](https://github.com/ruby/timeout) | `0.4.3` | `0.4.4` |\n| [uri](https://github.com/ruby/uri) | `1.0.4` | `1.1.1` |\n\nUpdates `rails` from 8.0.3 to 8.1.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.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ce0ce1ca2da1d36cdc149a72a777a956ea45dc7\"\u003e\u003ccode\u003e0ce0ce1\u003c/code\u003e\u003c/a\u003e Upgrade sigstore gem to 0.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/271acd57d1430be8c92fbd8f19a2069e62425803\"\u003e\u003ccode\u003e271acd5\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7574698226c364ab98e69188539e2cf27517ef1f\"\u003e\u003ccode\u003e7574698\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56020\"\u003e#56020\u003c/a\u003e from harsh183/hd/getting_started/fix_line_num_typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/89cb7bff192ce71267ae76f38942ca8f306ce273\"\u003e\u003ccode\u003e89cb7bf\u003c/code\u003e\u003c/a\u003e Fix railties/CHANGELOG.md offense at 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/7919bdab44688f1e7f121bc36a76169787cdfe60\"\u003e\u003ccode\u003e7919bda\u003c/code\u003e\u003c/a\u003e Restore header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f007f9ca53448379246a1901b213bd57955af26c\"\u003e\u003ccode\u003ef007f9c\u003c/code\u003e\u003c/a\u003e Disable SSL default config for out of the box Kamal deployments (\u003ca href=\"https://redirect.github.com/rails/rails/issues/56010\"\u003e#56010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/234b56973bb453bb50850a1be07a2fcad7331592\"\u003e\u003ccode\u003e234b569\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56008\"\u003e#56008\u003c/a\u003e from chaadow/fix_nesting_loop_rails\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/21a8742bb6bb5720f0e67d67fe26874598d1afbe\"\u003e\u003ccode\u003e21a8742\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55992\"\u003e#55992\u003c/a\u003e from jsharpify/jsharpify-reduce-deprecation-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a7ba88b04e935d2a9cbc205382d6cd7c514f425c\"\u003e\u003ccode\u003ea7ba88b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56001\"\u003e#56001\u003c/a\u003e from hachi8833/update_wishlists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 6.0.0 to 6.1.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.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for ActiveRecord binds in the log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2765\"\u003e#2765\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/getsentry/sentry-ruby/commit/1ca3afdadba4832239309f1b686943a73b2bf420\"\u003e\u003ccode\u003e1ca3afd\u003c/code\u003e\u003c/a\u003e release: 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/22d3ad48a58fe89ab871ef74d166de1edd041166\"\u003e\u003ccode\u003e22d3ad4\u003c/code\u003e\u003c/a\u003e chore(rails): refactor and fix test app setup (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/a1680da68589ab58f9027e4f8f85780e61e8414d\"\u003e\u003ccode\u003ea1680da\u003c/code\u003e\u003c/a\u003e Guard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2765\"\u003e#2765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/997ef4ed014e6fa5ac9ab0cb019c5c747f9d0480\"\u003e\u003ccode\u003e997ef4e\u003c/code\u003e\u003c/a\u003e chore(rails): 8.1 in test setup (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2764\"\u003e#2764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/d643fcd510be9fa467d993e81e62d90751b81b36\"\u003e\u003ccode\u003ed643fcd\u003c/code\u003e\u003c/a\u003e feat(rails): add binds to ActiveRecord logs (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/582aeb9a242c000d2068942570fc0acb56f9baa8\"\u003e\u003ccode\u003e582aeb9\u003c/code\u003e\u003c/a\u003e chore(rails): remove 5.0 leftovers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.0.0...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.0.0 to 6.1.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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for ActiveRecord binds in the log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2765\"\u003e#2765\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/getsentry/sentry-ruby/commit/1ca3afdadba4832239309f1b686943a73b2bf420\"\u003e\u003ccode\u003e1ca3afd\u003c/code\u003e\u003c/a\u003e release: 6.1.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.0.0...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 6.0.0 to 6.1.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-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for ActiveRecord binds in the log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard log subscribers with initialized check (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2765\"\u003e#2765\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/getsentry/sentry-ruby/commit/1ca3afdadba4832239309f1b686943a73b2bf420\"\u003e\u003ccode\u003e1ca3afd\u003c/code\u003e\u003c/a\u003e release: 6.1.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.0.0...6.1.0\"\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.8 to 8.0.9\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.0.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement idle Redis connection reaping, will be activated in 8.1 \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6663\"\u003e#6663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eSidekiq::Process\u003c/code\u003e API to provide capsule data. The \u003ccode\u003equeues\u003c/code\u003e and \u003ccode\u003eweights\u003c/code\u003e\ndata will be removed from Redis in Sidekiq 8.1, as this data can now be found in the\n\u003ccode\u003ecapsules\u003c/code\u003e element. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6295\"\u003e#6295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore bulk action buttons on Scheduled, Retry and Dead tabs [#6833, deve1212]\u003c/li\u003e\n\u003cli\u003eSupport logging additional job attributes [#6846, bschrag620]\u003c/li\u003e\n\u003cli\u003eFix display of long job args \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6836\"\u003e#6836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate development lifecycle (\u003ccode\u003edocs/sdlc.md\u003c/code\u003e) and security (\u003ccode\u003edocs/SECURITY.md\u003c/code\u003e) policy\ndocumentation for Sidekiq's current workflows\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/sidekiq/sidekiq/commit/32567d7cf2a465d93d69be2754d6f899ea655848\"\u003e\u003ccode\u003e32567d7\u003c/code\u003e\u003c/a\u003e changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/5fef41f4d290ac52435654dd846cd08277efef2b\"\u003e\u003ccode\u003e5fef41f\u003c/code\u003e\u003c/a\u003e prep for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/5d656d2449d94535f578875b46ddf490d6ccdbf8\"\u003e\u003ccode\u003e5d656d2\u003c/code\u003e\u003c/a\u003e Vulnerability policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c435e5ef8a1d1b007ee669835f7359a0bbe3a213\"\u003e\u003ccode\u003ec435e5e\u003c/code\u003e\u003c/a\u003e Implement idle redis connection reaping (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6664\"\u003e#6664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/3334ce8f765346d2d7333cf2293568037737bf1b\"\u003e\u003ccode\u003e3334ce8\u003c/code\u003e\u003c/a\u003e wordsmithing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/a5bfbc633299707108e1fa4b539009d7a3130f48\"\u003e\u003ccode\u003ea5bfbc6\u003c/code\u003e\u003c/a\u003e clarify commercial policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/be722014daf171b4fc4ed93d01a421d057a71acc\"\u003e\u003ccode\u003ebe72201\u003c/code\u003e\u003c/a\u003e formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/39fc90650fe8e3d9f859728bd71f62bf09980b9d\"\u003e\u003ccode\u003e39fc906\u003c/code\u003e\u003c/a\u003e first pass at sdlc policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/3a7baff4073fd326a146f3e10940036d21290f82\"\u003e\u003ccode\u003e3a7baff\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/2dcfcd51121c0c215514ef2435a92b000b193def\"\u003e\u003ccode\u003e2dcfcd5\u003c/code\u003e\u003c/a\u003e doc(changes)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.0.8...v8.0.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grover` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Studiosity/grover/releases\"\u003egrover's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude Node v24 in build suite by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/291\"\u003eStudiosity/grover#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the browser object to set cookies.  by \u003ca href=\"https://github.com/brendon\"\u003e\u003ccode\u003e@​brendon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/294\"\u003eStudiosity/grover#294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix removal of external spec dependency (httpstat.us offline) by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/298\"\u003eStudiosity/grover#298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 3.5.0-preview1 to build matrix by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/296\"\u003eStudiosity/grover#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Firefox browser by \u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/297\"\u003eStudiosity/grover#297\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/brendon\"\u003e\u003ccode\u003e@​brendon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/294\"\u003eStudiosity/grover#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Studiosity/grover/compare/v1.2.3...v1.2.4\"\u003ehttps://github.com/Studiosity/grover/compare/v1.2.3...v1.2.4\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/Studiosity/grover/blob/main/CHANGELOG.md\"\u003egrover's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Studiosity/grover/blob/main/releases/tag/v1.2.4\"\u003e1.2,4\u003c/a\u003e - 2025-11-04\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/Studiosity/grover/pull/297\"\u003e#297\u003c/a\u003e Add support for browser option (Firefox) ([\u003ca href=\"https://github.com/abrom\"\u003e\u003ccode\u003e@​abrom\u003c/code\u003e\u003c/a\u003e][])\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/Studiosity/grover/pull/294\"\u003e#294\u003c/a\u003e Handle deprecations in setCookie API ([\u003ca href=\"https://github.com/brendon\"\u003e\u003ccode\u003e@​brendon\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/Studiosity/grover/commit/f47af21c1192520ad6e98c05d9fde6e7f375ba57\"\u003e\u003ccode\u003ef47af21\u003c/code\u003e\u003c/a\u003e Release v1.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/8e7ce04a1dbd7576cddcd4b22dc107b815dfbfc5\"\u003e\u003ccode\u003e8e7ce04\u003c/code\u003e\u003c/a\u003e Add support for Firefox browser (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/52407a0e64b8bfcd7a8ab62e8bd295621215f402\"\u003e\u003ccode\u003e52407a0\u003c/code\u003e\u003c/a\u003e Add Ruby 3.5.0-preview1 to build matrix (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/d5eb9d8264000c1ba614a6085da6cee8889ede81\"\u003e\u003ccode\u003ed5eb9d8\u003c/code\u003e\u003c/a\u003e Fix removal of external spec dependency (httpstat.us offline) (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/ab0622ad7f5ffb87d13828e8dda8c675d63fffd7\"\u003e\u003ccode\u003eab0622a\u003c/code\u003e\u003c/a\u003e Handle deprecations in setCookie API (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/a243b8bc1171d2140a7fde5fab296781794dfad0\"\u003e\u003ccode\u003ea243b8b\u003c/code\u003e\u003c/a\u003e Include Node v24 in build suite (\u003ca href=\"https://redirect.github.com/Studiosity/grover/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/ef0992a2da6aeada6bdd6d761d334425a5c8baf3\"\u003e\u003ccode\u003eef0992a\u003c/code\u003e\u003c/a\u003e Expand apparmor README to explain some details further\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Studiosity/grover/commit/fc7eef54078a15fbf301e074bd343fe726ee9cc7\"\u003e\u003ccode\u003efc7eef5\u003c/code\u003e\u003c/a\u003e Update README with possible solutions for apparmor sandbox issues\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Studiosity/grover/compare/v1.2.3...v1.2.4\"\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 5.13.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 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/8706eb080e4adbec086c9df6b23c10d2392d67d9\"\u003e\u003ccode\u003e8706eb0\u003c/code\u003e\u003c/a\u003e Release version 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/4ee1610b38f2ad724ad35f46d4cd9f2ada8657fa\"\u003e\u003ccode\u003e4ee1610\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/586\"\u003e#586\u003c/a\u003e from x-govuk/govuk-frontend-5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/e4152cf35f1210fbf41a7f8c6326561ae34b08f2\"\u003e\u003ccode\u003ee4152cf\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1d621fec728b9ad3e68713d77fe418ff15f25938\"\u003e\u003ccode\u003e1d621fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/583\"\u003e#583\u003c/a\u003e from x-govuk/dependabot/npm_and_yarn/guide/sass-1.93.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/b719555a4517528f64ab8060176527ef16b8ab52\"\u003e\u003ccode\u003eb719555\u003c/code\u003e\u003c/a\u003e Bump sass from 1.91.0 to 1.93.2 in /guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/8220652d0d66644b84e71e73799526182e26e0dc\"\u003e\u003ccode\u003e8220652\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/578\"\u003e#578\u003c/a\u003e from x-govuk/dependabot/bundler/rubocop-govuk-tw-5.1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/d044ef7485504f87b5249d193cedfaa165e7dc5f\"\u003e\u003ccode\u003ed044ef7\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from ~\u0026gt; 5.0.1 to ~\u0026gt; 5.1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/c7a77bf283ae692234739d731466d4afea709d88\"\u003e\u003ccode\u003ec7a77bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/581\"\u003e#581\u003c/a\u003e from x-govuk/dependabot/bundler/rouge-tw-4.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/14991675d0b937d6d22fab58fc218678800292cd\"\u003e\u003ccode\u003e1499167\u003c/code\u003e\u003c/a\u003e Update rouge requirement from ~\u0026gt; 4.5.1 to ~\u0026gt; 4.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/865fd13d39821adac617aadccf6df3e3f70a4e47\"\u003e\u003ccode\u003e865fd13\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/569\"\u003e#569\u003c/a\u003e from x-govuk/dependabot/npm_and_yarn/guide/sass-1.89.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/compare/v5.11.0...v5.13.0\"\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 5.13.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 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/03365a4ae4c13d67f710e313d5420fb383cf6258\"\u003e\u003ccode\u003e03365a4\u003c/code\u003e\u003c/a\u003e Release version 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/4cc7cd132e65748edb74abf89da9c2ac40328c52\"\u003e\u003ccode\u003e4cc7cd1\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 5.13.0 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/7e2ac2f76d0bf2b9200ba4e59371fc617db6d724\"\u003e\u003ccode\u003e7e2ac2f\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/775c0185f0211fee2a02694058643b0458193ec3\"\u003e\u003ccode\u003e775c018\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.1.18 to = 5.1.20 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/19170ac2eb63f7bd1e271cf11f92c55891eb60dd\"\u003e\u003ccode\u003e19170ac\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.1.18 to = 5.1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/f5e44992352fcf026b7913d71dd78e4e4b2cea48\"\u003e\u003ccode\u003ef5e4499\u003c/code\u003e\u003c/a\u003e Add support for Rails 8.1 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/0cecbe14b468c8e7670a0dd8ca4c9bf85cb251cf\"\u003e\u003ccode\u003e0cecbe1\u003c/code\u003e\u003c/a\u003e Run tests against Rails 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/34265ad1e045782e2c0824c7f0a72eedc8a4f66a\"\u003e\u003ccode\u003e34265ad\u003c/code\u003e\u003c/a\u003e Replace ActiveSupport::Configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/ec204b7198a24dd932a600f3051e7811c0ab1035\"\u003e\u003ccode\u003eec204b7\u003c/code\u003e\u003c/a\u003e Bump view_component versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d6724bee5bc6866cf4637a2bfdcecea6a1abf0e9\"\u003e\u003ccode\u003ed6724be\u003c/code\u003e\u003c/a\u003e Use consistent brackets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-components/compare/v5.11.3...v5.13.0\"\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.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/viewcomponent/view_component/releases\"\u003eview_component's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Rails 8.1 support.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Lemuet\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Carwow to list of companies using ViewComponent.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eTom Lord\u003c/em\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/ViewComponent/view_component/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/ViewComponent/view_component/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\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.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Rails 8.1 support.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Lemuet\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Carwow to list of companies using ViewComponent.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eTom Lord\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeclare \u003ccode\u003eactionview\u003c/code\u003e as a \u003ccode\u003eview_component\u003c/code\u003e gem dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMichal Cichra\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/5ebefb32d1c492b858c68c7dc9046a1229fdf290\"\u003e\u003ccode\u003e5ebefb3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2472\"\u003e#2472\u003c/a\u003e from ViewComponent/release-4-1-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c541a78ebfaa4a4789b5f4b1abb54777bee0127\"\u003e\u003ccode\u003e9c541a7\u003c/code\u003e\u003c/a\u003e release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/044613756071110b51bc7fcf98df31be87b9f35f\"\u003e\u003ccode\u003e0446137\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2467\"\u003e#2467\u003c/a\u003e from ViewComponent/support-rails-head\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/177029d1016f8d6d40c121adf7b4e896b80f0df4\"\u003e\u003ccode\u003e177029d\u003c/code\u003e\u003c/a\u003e Keep benchmark on Rails 8.0 for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/129067b8d1bfac60dfe8c0930c4b425eee82da55\"\u003e\u003ccode\u003e129067b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into support-rails-head\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/24849b14a591abf718011a1be11afe8f61ca032b\"\u003e\u003ccode\u003e24849b1\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/2baa84e3c916bf6f697e8ea637a55696638665ab\"\u003e\u003ccode\u003e2baa84e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2468\"\u003e#2468\u003c/a\u003e from ViewComponent/fix-bug-replication-script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/879141ff1d350810e5b53d054c5b743657b19b6a\"\u003e\u003ccode\u003e879141f\u003c/code\u003e\u003c/a\u003e Relax allocations for Ruby 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d32c85627039cf107bae4f97491f64e8fd304c95\"\u003e\u003ccode\u003ed32c856\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/2fd86b76dc6d13907b22ce7f4f40628ac7e91407\"\u003e\u003ccode\u003e2fd86b7\u003c/code\u003e\u003c/a\u003e Alloooooocaaaaations!!!\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/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 `webmock` from 3.26.0 to 3.26.1\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.26.1\u003c/h1\u003e\n\u003cp\u003eFix compatibility with recent async-http versions\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThanks to [Mikhail Doronin](https://github.com/misdoro)\n\u003c/code\u003e\u003c/pre\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/bblimke/webmock/commit/56cb661b6aa2e711bcf3eb1e3a921a35727e7972\"\u003e\u003ccode\u003e56cb661\u003c/code\u003e\u003c/a\u003e Version 3.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/ea4cea3f01c7ec9019b7eae27a94f0f101e2ed26\"\u003e\u003ccode\u003eea4cea3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1109\"\u003e#1109\u003c/a\u003e from misdoro/duplicate_headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/c05fe472629da6ea6fc0ca065ce3bcafbfc56229\"\u003e\u003ccode\u003ec05fe47\u003c/code\u003e\u003c/a\u003e Split SAMPLE_REQUEST_HEADERS and SAMPLE_RESPONSE_HEADERS to be more realistic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/5f46ecabc3f4324ddde7ac4a948cc44145202828\"\u003e\u003ccode\u003e5f46eca\u003c/code\u003e\u003c/a\u003e Fix specs with recent Async-http versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/aa747ba5328a5fba500a16e54d3e1848106e1b0b\"\u003e\u003ccode\u003eaa747ba\u003c/code\u003e\u003c/a\u003e Run CI on pushes to all branches\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/bblimke/webmock/compare/3.26.0...v3.26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shoulda-matchers` from 6.5.0 to 7.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/releases\"\u003eshoulda-matchers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/shoulda-matchers/blob/main/CHANGELOG.md\"\u003eshoulda-matchers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales\"\u003e\u003ccode\u003e@​matsales\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/thoughtbot/shoulda-matchers/commit/2a503318d6dfab04fa5d2b76ad8b790abda4e4df\"\u003e\u003ccode\u003e2a50331\u003c/code\u003e\u003c/a\u003e bump version to 7.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/3ae93e62da8f0ed305ae9c3e41f8a5530a2010a7\"\u003e\u003ccode\u003e3ae93e6\u003c/code\u003e\u003c/a\u003e hotfix: Add mutex_m gem dependency (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/731aaa71c56125c1e2eef9c6fe28d47963216d37\"\u003e\u003ccode\u003e731aaa7\u003c/code\u003e\u003c/a\u003e Bump version to 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/9069b5994ac0a2fdc48017d92b582e92d52e7aa8\"\u003e\u003ccode\u003e9069b59\u003c/code\u003e\u003c/a\u003e * chore: Update supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/99e36980b0a63607df1104e6e204a0fd8ecd2167\"\u003e\u003ccode\u003e99e3698\u003c/code\u003e\u003c/a\u003e chore: Add Rails 8.1 support (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/5c79d3bb75730ebf6e2615713972cd9722b102e5\"\u003e\u003ccode\u003e5c79d3b\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 7.0 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/7c46150cf1467cb951df4901c4a8fb3b8d22595a\"\u003e\u003ccode\u003e7c46150\u003c/code\u003e\u003c/a\u003e chore: Add support for Rails 8 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/49113db8498288d59e7e2b405ba2ebfb836cbed2\"\u003e\u003ccode\u003e49113db\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 6.1 and older (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/15560c7d4874f867e4fe1ecee5e275c0027ead42\"\u003e\u003ccode\u003e15560c7\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to `have_attac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/024c055885c792ed45923812e582facbe55ea8c6\"\u003e\u003ccode\u003e024c055\u003c/code\u003e\u003c/a\u003e chore: Update Ruby versions to latest stable releases (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/compare/v6.5.0...v7.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.3 to 8.1.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow passing composite channels to \u003ccode\u003eActionCable::Channel#stream_for\u003c/code\u003e – e.g. \u003ccode\u003estream_for [ group, group.owner ]\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ehey-leon\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting nil as subscription connection identifier for Redis.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNguyen Nguyen\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actioncable/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df9f43214c637c54773581c85c910b356b16fa44\"\u003e\u003ccode\u003edf9f432\u003c/code\u003e\u003c/a\u003e Allow methods starting with underscore to be action methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b92d3020c662ffe7c58908c0a2be70e20ebfe6a3\"\u003e\u003ccode\u003eb92d302\u003c/code\u003e\u003c/a\u003e Address \u003ccode\u003eCan not start microsoftedge 17.17134 (Windows 10)\u003c/code\u003e error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/207a254cedef2c381c2898bac960b91ce14ab3a7\"\u003e\u003ccode\u003e207a254\u003c/code\u003e\u003c/a\u003e ActiveSupport::Callbacks add a fast path when there is no callbacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/00dc4bf1f1413f34197f3c2be55a8fb8f3bf47af\"\u003e\u003ccode\u003e00dc4bf\u003c/code\u003e\u003c/a\u003e chore(deps-dev): update eslint from 8.57.1 to 9.24.0 with Flat Config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/80827ca7ff33ca3026f2c74fe8249ccc6f513318\"\u003e\u003ccode\u003e80827ca\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.beta1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/466777f499b16ea2cf948fbeebd9f4ec89ddc503\"\u003e\u003ccode\u003e466777f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55197\"\u003e#55197\u003c/a\u003e from hey-leon/composite-broadcasting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.3 to 8.1.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ereply_to_address\u003c/code\u003e extension method on \u003ccode\u003eMail::Message\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMr0grog\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actionmailbox/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/80827ca7ff33ca3026f2c74fe8249ccc6f513318\"\u003e\u003ccode\u003e80827ca\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.beta1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f3e06703619cf13de78638580c175b0586bfa201\"\u003e\u003ccode\u003ef3e0670\u003c/code\u003e\u003c/a\u003e Remove deprecated \u003ccode\u003e:azure\u003c/code\u003e storage service\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a99903d464662db6b114b07fa56e90204a3b4778\"\u003e\u003ccode\u003ea99903d\u003c/code\u003e\u003c/a\u003e Bump RuboCop to fix some transient failures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0ff636ae0dfb0890e189f22d7dee274f1b5321d\"\u003e\u003ccode\u003eb0ff636\u003c/code\u003e\u003c/a\u003e Handle Rack 3.2 \u003ccode\u003eunprocessable_{entity,content}\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f3f31eed37a76fbe7dba59acb756227b858b790f\"\u003e\u003ccode\u003ef3f31ee\u003c/code\u003e\u003c/a\u003e Move StrictWarnings to the tools directory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bc2e492a80f7e8cf43377dfaccdd9a027e60971e\"\u003e\u003ccode\u003ebc2e492\u003c/code\u003e\u003c/a\u003e Run tests with \u003ccode\u003e--profile\u003c/code\u003e on CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.3 to 8.1.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd structured events for Action Mailer:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eaction_mailer.delivered\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eaction_mailer.processed\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eGannon McGibbon\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003edeliver_all_later\u003c/code\u003e to enqueue multiple emails at once.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003euser_emails = User.all.map { |user| Notifier.welcome(user) }\nActionMailer.deliver_all_later(user_emails)\n\u003ch1\u003euse a custom queue\u003c/h1\u003e\n\u003cp\u003eActionMailer.deliver_all_later(user_emails, queue: :my_queue)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThis can greatly reduce the number of round-trips to the queue datastore.\nFor queue adapters that do not implement the \u003ccode\u003eenqueue_all\u003c/code\u003e method, we\nfall back to enqueuing email jobs indvidually.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actionmailer/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df9f43214c637c54773581c85c910b356b16fa44\"\u003e\u003ccode\u003edf9f432\u003c/code\u003e\u003c/a\u003e Allow methods starting with underscore to be action methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f77a1c3654afdf599fa927e7910d6e9c5e9df7cf\"\u003e\u003ccode\u003ef77a1c3\u003c/code\u003e\u003c/a\u003e Require 'rails' at the top of railltie files to ensure Rails is loaded first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6f9f62d49750fee6a45f3672e2227d5c4198a62\"\u003e\u003ccode\u003ed6f9f62\u003c/code\u003e\u003c/a\u003e Make the Structured Event Subscriber emit events in format that are useful fo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d2518fa2c974bfa97c378c9250c1256f83dff0de\"\u003e\u003ccode\u003ed2518fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55748\"\u003e#55748\u003c/a\u003e from Shopify/event_with_debug_helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1e776998ed4ac8a415c1173ad55157f14368d939\"\u003e\u003ccode\u003e1e77699\u003c/code\u003e\u003c/a\u003e Make all framework log subscribers API private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78857a394515c74e77db81da75f41f74d474b8e1\"\u003e\u003ccode\u003e78857a3\u003c/code\u003e\u003c/a\u003e Introduce with_debug_event_reporting to enable event reporter debug mode\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.3 to 8.1.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSubmit test requests using \u003ccode\u003eas: :html\u003c/code\u003e with \u003ccode\u003eContent-Type: x-www-form-urlencoded\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd link-local IP ranges to \u003ccode\u003eActionDispatch::RemoteIp\u003c/code\u003e default proxies.\u003c/p\u003e\n\u003cp\u003eLink-local addresses (\u003ccode\u003e169.254.0.0/16\u003c/code\u003e for IPv4 and \u003ccode\u003efe80::/10\u003c/code\u003e for IPv6)\nare now included in the default trusted proxy list, similar to private IP ranges.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdam Daniels\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eremote_ip\u003c/code\u003e will no longer ignore IPs in X-Forwarded-For headers if they\nare accompanied by port information.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDuncan Brown\u003c/em\u003e, \u003cem\u003ePrevenios Marinos\u003c/em\u003e, \u003cem\u003eMasafumi Koba\u003c/em\u003e, \u003cem\u003eAdam Daniels\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eaction_dispatch.verbose_redirect_logs\u003c/code\u003e setting that logs where redirects were called from.\u003c/p\u003e\n\u003cp\u003eSimilar to \u003ccode\u003eactive_record.verbose_query_logs\u003c/code\u003e and \u003ccode\u003eactive_job.verbose_enqueue_logs\u003c/code\u003e, this adds a line in your logs that shows where a redirect was called from.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRedirected to http://localhost:3000/posts/1\n↳ app/controllers/posts_controller.rb:32:in `block (2 levels) in create'\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eDennis Paagman\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd engine route filtering and better formatting in \u003ccode\u003ebin/rails routes\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAllow engine routes to be filterable in the routing inspector, and\nimprove formatting of engine routing output.\u003c/p\u003e\n\u003cp\u003eBefore:\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/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/271acd57d1430be8c92fbd8f19a2069e62425803\"\u003e\u003ccode\u003e271acd5\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/df9f43214c637c54773581c85c910b356b16fa44\"\u003e\u003ccode\u003edf9f432\u003c/code\u003e\u003c/a\u003e Allow methods starting with underscore to be action methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f77a1c3654afdf599fa927e7910d6e9c5e9df7cf\"\u003e\u003ccode\u003ef77a1c3\u003c/code\u003e\u003c/a\u003e Require 'rails' at the top of railltie files to ensure Rails is loaded first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/62a109a53f1471274a150a267239441d0592f389\"\u003e\u003ccode\u003e62a109a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0777f23945aa498c280279b16091789b402daa64\"\u003e\u003ccode\u003e0777f23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55921\"\u003e#55921\u003c/a\u003e from skipkayhil/hm-ykpyzlmxovpttksv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4663af7e5c5263fa7b5ec5cdd529fc0c357ae037\"\u003e\u003ccode\u003e4663af7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55922\"\u003e#55922\u003c/a\u003e from Shopify/event_subscriber_additionss\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ca45ef19a745b1283ba3bf6b1076c998a3e559e4\"\u003e\u003ccode\u003eca45ef1\u003c/code\u003e\u003c/a\u003e Remove mention of raise_on_open_redirects from doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.3 to 8.1.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.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\u003e\n\u003cp\u003eRespect \u003ccode\u003eremove_hidden_field_autocomplete\u003c/code\u003e config in form builder \u003ccode\u003ehidden_field\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow methods starting with underscore to be action methods.\u003c/p\u003e\n\u003cp\u003eDisallowing methods starting with an underscore from being action methods\nwas an unintended side effect of the performance optimization in\n207a254.\u003c/p\u003e\n\u003cp\u003eFixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/55985\"\u003e#55985\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly index new serializers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJesse Sharps\u003c/em\u003e\u003c/p\u003e\n\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\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/rails/blob/v8.1.1/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.1 (October 28, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDe-couple \u003ccode\u003e@rails/actiontext/attachment_upload.js\u003c/code\u003e from \u003ccode\u003eTrix.Attachment\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eImplement \u003ccode\u003e@rails/actiontext/index.js\u003c/code\u003e with a \u003ccode\u003edirect-upload:progress\u003c/code\u003e event\nlisteners and \u003ccode\u003ePromise\u003c/code\u003e resolution.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCapture block content for form helper methods\u003c/p\u003e\n\u003cpre lang=\"erb\"\u003e\u003ccode\u003e\u0026lt;%= rich_textarea_tag :content, nil do %\u0026gt;\n  \u0026lt;h1\u0026gt;hello world\u0026lt;/h1\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;!-- \u0026lt;input type=\u0026quot;hidden\u0026quot; name=\u0026quot;content\u0026quot; id=\u0026quot;trix_input_1\u0026quot; value=\u0026quot;\u0026amp;lt;h1\u0026amp;gt;hello world\u0026amp;lt;/h1\u0026amp;gt;\u0026quot;/\u0026gt;\u0026lt;trix-editor … --\u0026gt;\n\u003cp\u003e\u0026lt;%= rich_textarea :message, :content, input: \u0026quot;trix_input_1\u0026quot; do %\u0026gt;\n\u0026lt;h1\u0026gt;hello world\u0026lt;/h1\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;!-- \u0026lt;input type=\u0026quot;hidden\u0026quot; name=\u0026quot;message[content]\u0026quot; id=\u0026quot;trix_input_1\u0026quot; value=\u0026quot;\u0026amp;lt;h1\u0026amp;gt;hello world\u0026amp;lt;/h1\u0026amp;gt;\u0026quot;/\u0026gt;\u0026lt;trix-editor … --\u0026gt;\u003c/p\u003e\n\u003cp\u003e\u0026lt;%= form_with model: Message.new do |form| %\u0026gt;\n\u0026lt;%= form.rich_textarea :content do %\u0026gt;\n\u0026lt;h1\u0026gt;hello world\u0026lt;/h1\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;% end %\u0026gt;\n\u0026lt;!-- \u0026lt;form action=\u0026quot;/messages\u0026quot; accept-charset=\u0026quot;UTF-8\u0026quot; method=\u0026quot;post\u0026quot;\u0026gt;\u0026lt;input type=\u0026quot;hidden\u0026quot; name=\u0026quot;message[content]\u0026quot; id=\u0026quot;message_content_trix_input_message\u0026quot; value=\u0026quot;\u0026amp;lt;h1\u0026amp;gt;hello world\u0026amp;lt;/h1\u0026amp;gt;\u0026quot;/\u0026gt;\u0026lt;trix-editor … --\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGeneralize \u003ccode\u003e:rich_text_area\u003c/code\u003e Capybara selector\u003c/p\u003e\n\u003cp\u003ePrepare for more Action Text-capable WYSIWYG editors by making\n\u003ccode\u003e:rich_text_area\u003c/code\u003e rely on the presence of \u003ccode\u003e[role=\u0026quot;textbox\u0026quot;]\u003c/code\u003e and\n\u003ccode\u003e[contenteditable]\u003c/code\u003e HTML attributes rather than a \u003ccode\u003e\u0026lt;trix-editor\u0026gt;\u003c/code\u003e element.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSean Doyle\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eForward \u003ccode\u003efill_in_rich_text_area\u003c/code\u003e options to Capybara\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003efill_in_rich_textarea \u0026quot;Rich text editor\u0026quot;, id: \u0026quot;trix_editor_1\u0026quot;, with: \u0026quot;Hello world!\u0026quot;\n\u003c/code\u003e\u003c/pre\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/90a1eaa1b30ba1f2d524e197460e549c03cf5698\"\u003e\u003ccode\u003e90a1eaa\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/53c4ed887450cc2dee4b373148162c485999a400\"\u003e\u003ccode\u003e53c4ed8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55973\"\u003e#55973\u003c/a\u003e from rails/fix-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5e231ae6548f1c5686f75e61832638937b134961\"\u003e\u003ccode\u003e5e231ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54914\"\u003e#54914\u003c/a\u003e from chaadow/fix_autoloaded_content_helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c624be05a5660772cbb6305862c3921b2f5788f\"\u003e\u003ccode\u003e8c624be\u003c/code\u003e\u003c/a\u003e De-couple \u003ccode\u003e@rails/actiontext/attachment_upload.js\u003c/code\u003e from \u003ccode\u003eTrix.Attachment\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9825b1ba8bda30635c4a1eddbb4c9794d1ba8a3b\"\u003e\u003ccode\u003e9825b1b\u003c/code\u003e\u003c/a\u003e Action Text: change tag helpers to accept optional blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cd49fa3e8058d4d37112abcf5eb6d85a9bfa4137\"\u003e\u003ccode\u003ecd49fa3\u003c/code\u003e\u003c/a\u003e Fix label \u003ccode\u003efor\u003c/code\u003e attribute missing form namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a20ee82fb14a955f55e49ae9db76779b250b3d9a\"\u003e\u003ccode\u003ea20ee82\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eimage_processing\u003c/code\u003e to the gemfile by default for active_storage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0a5faeaf71745b05d937b579a4da5bd90e0b6b58\"\u003e\u003ccode\u003e0a5faea\u003c/code\u003e\u003c/a\u003e Prevent stack overflow in ActionText PlaintextConversion (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55025\"\u003e#55025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.3 to 8.1.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-apply-for-legal-aid/pull/8125","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-apply-for-legal-aid/issues/8125","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8125/packages"}},{"old_version":"8.0.3","new_version":"8.0.4","update_type":"patch","path":null,"pr_created_at":"2025-11-04T03:04:29.000Z","version_change":"8.0.3 → 8.0.4","issue":{"uuid":"3584528119","node_id":"PR_kwDOFOGO4c6xUMuv","number":1621,"state":"open","title":"Chore(deps): Bump the bundler group with 25 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":"2025-11-04T03:04:29.000Z","updated_at":"2025-11-04T03:04:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"bundler","update_count":25,"packages":[{"name":"rails","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"actioncable","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"date","old_version":"3.4.1","new_version":"3.5.0","repository_url":"https://github.com/ruby/date"},{"name":"erb","old_version":"5.1.1","new_version":"5.1.3","repository_url":"https://github.com/ruby/erb"},{"name":"formatador","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/geemus/formatador"},{"name":"irb","old_version":"1.15.2","new_version":"1.15.3","repository_url":"https://github.com/ruby/irb"},{"name":"nio4r","old_version":"2.7.4","new_version":"2.7.5","repository_url":"https://github.com/socketry/nio4r"},{"name":"rack","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/rack/rack"},{"name":"railties","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"},{"name":"rake","old_version":"13.3.0","new_version":"13.3.1","repository_url":"https://github.com/ruby/rake"},{"name":"rdoc","old_version":"6.15.0","new_version":"6.15.1","repository_url":"https://github.com/ruby/rdoc"},{"name":"rspec-mocks","old_version":"3.13.6","new_version":"3.13.7","repository_url":"https://github.com/rspec/rspec"},{"name":"timeout","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/ruby/timeout"},{"name":"uri","old_version":"1.0.4","new_version":"1.1.0","repository_url":"https://github.com/ruby/uri"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 25 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionpack](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actiontext](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [actionview](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activejob](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activemodel](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activerecord](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activestorage](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [activesupport](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [date](https://github.com/ruby/date) | `3.4.1` | `3.5.0` |\n| [erb](https://github.com/ruby/erb) | `5.1.1` | `5.1.3` |\n| [formatador](https://github.com/geemus/formatador) | `1.2.1` | `1.2.2` |\n| [irb](https://github.com/ruby/irb) | `1.15.2` | `1.15.3` |\n| [nio4r](https://github.com/socketry/nio4r) | `2.7.4` | `2.7.5` |\n| [rack](https://github.com/rack/rack) | `3.2.3` | `3.2.4` |\n| [railties](https://github.com/rails/rails) | `8.0.3` | `8.0.4` |\n| [rake](https://github.com/ruby/rake) | `13.3.0` | `13.3.1` |\n| [rdoc](https://github.com/ruby/rdoc) | `6.15.0` | `6.15.1` |\n| [rspec-mocks](https://github.com/rspec/rspec) | `3.13.6` | `3.13.7` |\n| [timeout](https://github.com/ruby/timeout) | `0.4.3` | `0.4.4` |\n| [uri](https://github.com/ruby/uri) | `1.0.4` | `1.1.0` |\n\nUpdates `rails` from 8.0.3 to 8.0.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.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/47a763581331ecfa56fb27beceda04bc6b5bb1f4\"\u003e\u003ccode\u003e47a7635\u003c/code\u003e\u003c/a\u003e Upgrade sigstore gem to 0.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2f3eb21bd6da9a4935314d4a0663c473c4d33700\"\u003e\u003ccode\u003e2f3eb21\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d96d698c3a78510d974f186d21e9b81d15b2a955\"\u003e\u003ccode\u003ed96d698\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56021\"\u003e#56021\u003c/a\u003e from harsh183/hd/getting_started_add_note_about_mai...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ddf2c97b27d25aa1e450545d59ff867df31253f\"\u003e\u003ccode\u003e0ddf2c9\u003c/code\u003e\u003c/a\u003e Delete test that now fails with new version of benchmark gem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6981fd2fbeadc8bc7db6547604cf2df13cb18a40\"\u003e\u003ccode\u003e6981fd2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55969\"\u003e#55969\u003c/a\u003e from rails/fix-explain-tests-mysql-9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/95a073edcda76d06037df3d1c4904759e5d58163\"\u003e\u003ccode\u003e95a073e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55966\"\u003e#55966\u003c/a\u003e from alexanderadam/doc/remove_subclasses_documentat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac0b8f0a6187d2d626f7c8c29dae41c8ff9217d1\"\u003e\u003ccode\u003eac0b8f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54720\"\u003e#54720\u003c/a\u003e from gregmolnar/guides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/82f2c96c394b0cf2c2208a7cbf8ebb4fa591ebd6\"\u003e\u003ccode\u003e82f2c96\u003c/code\u003e\u003c/a\u003e Disable GCS tests in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/94a28440cafca5c243821490956432b30d8a4fa4\"\u003e\u003ccode\u003e94a2844\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53068\"\u003e#53068\u003c/a\u003e from zzak/rails-probot-migration\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shoulda-matchers` from 6.5.0 to 7.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/releases\"\u003eshoulda-matchers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/shoulda-matchers/blob/main/CHANGELOG.md\"\u003eshoulda-matchers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.1 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHotfix: Add mutex_m gem dependency by \u003ca href=\"https://github.com/matsales\"\u003e\u003ccode\u003e@​matsales\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/garrettgregor\"\u003e\u003ccode\u003e@​garrettgregor\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1687\"\u003ethoughtbot/shoulda-matchers#1687\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.0 - 2025-10-31\u003c/h2\u003e\n\u003ch3\u003eBackward-incompatible changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Rails 6.1 and older by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Rails 7.0 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ca href=\"https://github.com/options\"\u003e\u003ccode\u003e@​options\u003c/code\u003e\u003c/a\u003e is always set in ActiveModel::ValidationMatcher by \u003ca href=\"https://github.com/yelvert\"\u003e\u003ccode\u003e@​yelvert\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8 by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Rails 8.1 support by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport encrypted ActionText attributes by \u003ca href=\"https://github.com/spdawson\"\u003e\u003ccode\u003e@​spdawson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to \u003ccode\u003ehave_attached\u003c/code\u003e matcher by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor Ruby manager setup, add mise integration by \u003ca href=\"https://github.com/amalrik\"\u003e\u003ccode\u003e@​amalrik\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Ruby versions to latest stable releases by \u003ca href=\"https://github.com/matsales28\"\u003e\u003ccode\u003e@​matsales28\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1667\"\u003e#1667\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1667\"\u003ethoughtbot/shoulda-matchers#1667\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1669\"\u003e#1669\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1669\"\u003ethoughtbot/shoulda-matchers#1669\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1674\"\u003e#1674\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1674\"\u003ethoughtbot/shoulda-matchers#1674\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1675\"\u003e#1675\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1675\"\u003ethoughtbot/shoulda-matchers#1675\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1676\"\u003ethoughtbot/shoulda-matchers#1676\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1677\"\u003ethoughtbot/shoulda-matchers#1677\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1678\"\u003ethoughtbot/shoulda-matchers#1678\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1680\"\u003ethoughtbot/shoulda-matchers#1680\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1682\"\u003ethoughtbot/shoulda-matchers#1682\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1683\"\u003e#1683\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/pull/1683\"\u003ethoughtbot/shoulda-matchers#1683\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/thoughtbot/shoulda-matchers/commit/2a503318d6dfab04fa5d2b76ad8b790abda4e4df\"\u003e\u003ccode\u003e2a50331\u003c/code\u003e\u003c/a\u003e bump version to 7.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/3ae93e62da8f0ed305ae9c3e41f8a5530a2010a7\"\u003e\u003ccode\u003e3ae93e6\u003c/code\u003e\u003c/a\u003e hotfix: Add mutex_m gem dependency (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/731aaa71c56125c1e2eef9c6fe28d47963216d37\"\u003e\u003ccode\u003e731aaa7\u003c/code\u003e\u003c/a\u003e Bump version to 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/9069b5994ac0a2fdc48017d92b582e92d52e7aa8\"\u003e\u003ccode\u003e9069b59\u003c/code\u003e\u003c/a\u003e * chore: Update supported Ruby versions to 3.3.10 and 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/99e36980b0a63607df1104e6e204a0fd8ecd2167\"\u003e\u003ccode\u003e99e3698\u003c/code\u003e\u003c/a\u003e chore: Add Rails 8.1 support (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1682\"\u003e#1682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/5c79d3bb75730ebf6e2615713972cd9722b102e5\"\u003e\u003ccode\u003e5c79d3b\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 7.0 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1680\"\u003e#1680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/7c46150cf1467cb951df4901c4a8fb3b8d22595a\"\u003e\u003ccode\u003e7c46150\u003c/code\u003e\u003c/a\u003e chore: Add support for Rails 8 (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1677\"\u003e#1677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/49113db8498288d59e7e2b405ba2ebfb836cbed2\"\u003e\u003ccode\u003e49113db\u003c/code\u003e\u003c/a\u003e chore: Drop support for Rails 6.1 and older (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1678\"\u003e#1678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/15560c7d4874f867e4fe1ecee5e275c0027ead42\"\u003e\u003ccode\u003e15560c7\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eservice\u003c/code\u003e, \u003ccode\u003estrict_loading\u003c/code\u003e, and \u003ccode\u003edependent\u003c/code\u003e options to `have_attac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/commit/024c055885c792ed45923812e582facbe55ea8c6\"\u003e\u003ccode\u003e024c055\u003c/code\u003e\u003c/a\u003e chore: Update Ruby versions to latest stable releases (\u003ca href=\"https://redirect.github.com/thoughtbot/shoulda-matchers/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/thoughtbot/shoulda-matchers/compare/v6.5.0...v7.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.3 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b495d8b0979bbefb9a233a6e1682c87759a7d83\"\u003e\u003ccode\u003e2b495d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.3 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9ab450a023290ff50ed37c8561880a78dabbf19a\"\u003e\u003ccode\u003e9ab450a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55490\"\u003e#55490\u003c/a\u003e from Earlopain/bump-rubocop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.3 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.3 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/648192531f46da609b37f417d34f49af183b3e45\"\u003e\u003ccode\u003e6481925\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55947\"\u003e#55947\u003c/a\u003e from c0nspiracy/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/243e606288bc6b13edf0d5c91ebbd90ab36bc430\"\u003e\u003ccode\u003e243e606\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/50390\"\u003e#50390\u003c/a\u003e from seanpdoyle/issue-50345\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9ab450a023290ff50ed37c8561880a78dabbf19a\"\u003e\u003ccode\u003e9ab450a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55490\"\u003e#55490\u003c/a\u003e from Earlopain/bump-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ab8e833991e493f57f03c10ee2a8a7fda218faae\"\u003e\u003ccode\u003eab8e833\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55820\"\u003e#55820\u003c/a\u003e from callmesangio/docs-fix-integrationtest-example\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.3 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.3 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2f3eb21bd6da9a4935314d4a0663c473c4d33700\"\u003e\u003ccode\u003e2f3eb21\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9ab450a023290ff50ed37c8561880a78dabbf19a\"\u003e\u003ccode\u003e9ab450a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55490\"\u003e#55490\u003c/a\u003e from Earlopain/bump-rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/95bee6a4c8132b4caf53e073f7b01ce5cdeed4a6\"\u003e\u003ccode\u003e95bee6a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55738\"\u003e#55738\u003c/a\u003e from skipkayhil/hm-nkxzsnnrqqlyrotw\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.3 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.3 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.3 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2f3eb21bd6da9a4935314d4a0663c473c4d33700\"\u003e\u003ccode\u003e2f3eb21\u003c/code\u003e\u003c/a\u003e Sync CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6981fd2fbeadc8bc7db6547604cf2df13cb18a40\"\u003e\u003ccode\u003e6981fd2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55969\"\u003e#55969\u003c/a\u003e from rails/fix-explain-tests-mysql-9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52347e0467445b350f482838da5bb503c155eb72\"\u003e\u003ccode\u003e52347e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55938\"\u003e#55938\u003c/a\u003e from aidanharan/truthy-condition-mssql\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d2826215f9c9c1fe2f1c91e292171a042be1e9c5\"\u003e\u003ccode\u003ed282621\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55925\"\u003e#55925\u003c/a\u003e from flavorjones/flavorjones/shard-swap-prohibition...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/511dbf2665746e54240c07b93b0d0ddc184873f9\"\u003e\u003ccode\u003e511dbf2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55907\"\u003e#55907\u003c/a\u003e from ruyrocha/fix/sqlite3-data-loss\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bf9219d62aed746260e853cebe98503c8c27cdd5\"\u003e\u003ccode\u003ebf9219d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55918\"\u003e#55918\u003c/a\u003e from baarde/with-bound-sql-literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/865bc776d039645bd4b7f2c826ab4e0aaadf51b6\"\u003e\u003ccode\u003e865bc77\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55332\"\u003e#55332\u003c/a\u003e from zzak/re-54882\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dee79c4a74723ce8016b2e96e3d6d5723f673aa6\"\u003e\u003ccode\u003edee79c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55778\"\u003e#55778\u003c/a\u003e from ianterrell/ianterrell/fix-autosave-changed-via...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.3 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/82f2c96c394b0cf2c2208a7cbf8ebb4fa591ebd6\"\u003e\u003ccode\u003e82f2c96\u003c/code\u003e\u003c/a\u003e Disable GCS tests in CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.3 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ddf2c97b27d25aa1e450545d59ff867df31253f\"\u003e\u003ccode\u003e0ddf2c9\u003c/code\u003e\u003c/a\u003e Delete test that now fails with new version of benchmark gem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3c7a8a8208221c3f01bc841a8f7015ea00e86427\"\u003e\u003ccode\u003e3c7a8a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55864\"\u003e#55864\u003c/a\u003e from RicardoTrindade/patch-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/00e1dfa973ce121d767c299a02d05b028caf8b5c\"\u003e\u003ccode\u003e00e1dfa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55840\"\u003e#55840\u003c/a\u003e from zzak/asup-xml-mini-bigdecimal-float-precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f3148ba1cfc8482c7e9115bbc68a84bf62543c46\"\u003e\u003ccode\u003ef3148ba\u003c/code\u003e\u003c/a\u003e [ci skip] Fix \u003ccode\u003etransform_keys!\u003c/code\u003e example in 8.0.3 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2e0b72cc3bd5afdc663ddbf35246dde880024e2e\"\u003e\u003ccode\u003e2e0b72c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55808\"\u003e#55808\u003c/a\u003e from olivier-thatch/fix-enum-sole\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6aab6c8a1cd9c87e9cab9dddeeae119a4df65a11\"\u003e\u003ccode\u003e6aab6c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55794\"\u003e#55794\u003c/a\u003e from rails/fix-55513\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/edeeb0eeedce6e97c4186e75103c4d979da058f9\"\u003e\u003ccode\u003eedeeb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55786\"\u003e#55786\u003c/a\u003e from rails/fix-55776\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `date` from 3.4.1 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/date/releases\"\u003edate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify description of this library by \u003ca href=\"https://github.com/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/112\"\u003eruby/date#112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Fix broken rdoc-ref to the calendar page by \u003ca href=\"https://github.com/st0012\"\u003e\u003ccode\u003e@​st0012\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/113\"\u003eruby/date#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TruffleRuby in CI by \u003ca href=\"https://github.com/andrykonchin\"\u003e\u003ccode\u003e@​andrykonchin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/115\"\u003eruby/date#115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnclose dangling else in braces and fix -Wmisleading-indentation 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/date/pull/117\"\u003eruby/date#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd license files (COPYING, BSDL) to gem files by \u003ca href=\"https://github.com/seedot1234\"\u003e\u003ccode\u003e@​seedot1234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/121\"\u003eruby/date#121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows-2019 will be EOL at end of June, 2025 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/date/pull/124\"\u003eruby/date#124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlias value to take in old Ruby 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/date/pull/127\"\u003eruby/date#127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved workaround for assert_ractor 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/date/pull/128\"\u003eruby/date#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuppress warnings by gcc-13 with \u003ccode\u003e-Og\u003c/code\u003e 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/date/pull/129\"\u003eruby/date#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove references to FL_EXIVAR 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/date/pull/132\"\u003eruby/date#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Date#hash for large years by \u003ca href=\"https://github.com/Stranger6667\"\u003e\u003ccode\u003e@​Stranger6667\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/130\"\u003eruby/date#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: check for fixnum lower bound in m_ajd by \u003ca href=\"https://github.com/Stranger6667\"\u003e\u003ccode\u003e@​Stranger6667\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/131\"\u003eruby/date#131\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuppress maybe-uninitialized warning by gcc-13 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/date/pull/139\"\u003eruby/date#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not repeat conversions to string 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/date/pull/140\"\u003eruby/date#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest for the \u003ca href=\"https://redirect.github.com/ruby/date/issues/140\"\u003e#140\u003c/a\u003e 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/date/pull/141\"\u003eruby/date#141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDate._parse\u003c/code\u003e does not accept \u003ccode\u003enil\u003c/code\u003e 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/date/pull/142\"\u003eruby/date#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a workflow to sync commits to ruby/ruby by \u003ca href=\"https://github.com/k0kubun\"\u003e\u003ccode\u003e@​k0kubun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/date/pull/143\"\u003eruby/date#143\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/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/112\"\u003eruby/date#112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/st0012\"\u003e\u003ccode\u003e@​st0012\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/113\"\u003eruby/date#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrykonchin\"\u003e\u003ccode\u003e@​andrykonchin\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/115\"\u003eruby/date#115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seedot1234\"\u003e\u003ccode\u003e@​seedot1234\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/121\"\u003eruby/date#121\u003c/a\u003e\u003c/li\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/date/pull/132\"\u003eruby/date#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667\"\u003e\u003ccode\u003e@​Stranger6667\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/date/pull/130\"\u003eruby/date#130\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/date/compare/v3.4.1...v3.5.0\"\u003ehttps://github.com/ruby/date/compare/v3.4.1...v3.5.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/ruby/date/commit/c941d1a8a88ead5633679d13618217aa83a455a0\"\u003e\u003ccode\u003ec941d1a\u003c/code\u003e\u003c/a\u003e Need to compile before release-gem for JRuby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/d535f7e85fbb8841e0b1cd363b4497b195ebe110\"\u003e\u003ccode\u003ed535f7e\u003c/code\u003e\u003c/a\u003e v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/b703fcb45036c59436af9d684558ce5cf1dc75f6\"\u003e\u003ccode\u003eb703fcb\u003c/code\u003e\u003c/a\u003e Update the latest versions of actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/af863b54f33c40be90fe8cc841202ec53b27a43e\"\u003e\u003ccode\u003eaf863b5\u003c/code\u003e\u003c/a\u003e Add a workflow to sync commits to ruby/ruby (\u003ca href=\"https://redirect.github.com/ruby/date/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/545066ca28b2a6536e6d58a4e2bdb0653ec82caa\"\u003e\u003ccode\u003e545066c\u003c/code\u003e\u003c/a\u003e \u003ccode\u003eDate._parse\u003c/code\u003e does not accept \u003ccode\u003enil\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/4f7b6c9b421eacd74c1f34ddd482f3b7f002d316\"\u003e\u003ccode\u003e4f7b6c9\u003c/code\u003e\u003c/a\u003e Test for the \u003ca href=\"https://redirect.github.com/ruby/date/issues/140\"\u003e#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/159e1ebb7fcd7d06d699d51f713637ee9c3cf406\"\u003e\u003ccode\u003e159e1eb\u003c/code\u003e\u003c/a\u003e Do not repeat conversions to string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/5d48e5d1b8c65ce5551565cbca5f735e96d6275c\"\u003e\u003ccode\u003e5d48e5d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/date/issues/138\"\u003e#138\u003c/a\u003e from ruby/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/0c8e5a68450e8421604e852e5f2630f59511933a\"\u003e\u003ccode\u003e0c8e5a6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/date/issues/139\"\u003e#139\u003c/a\u003e from nobu/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/date/commit/afaa4a997b45c8318b66a7b7ab30848793c01d99\"\u003e\u003ccode\u003eafaa4a9\u003c/code\u003e\u003c/a\u003e Suppress maybe-uninitialized warning by gcc-13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/date/compare/v3.4.1...v3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `erb` from 5.1.1 to 5.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/erb/releases\"\u003eerb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.3\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ruby/erb/compare/v5.1.2...v5.1.3\"\u003ehttps://github.com/ruby/erb/compare/v5.1.2...v5.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor html_escape by \u003ca href=\"https://github.com/noteflakes\"\u003e\u003ccode\u003e@​noteflakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/erb/pull/88\"\u003eruby/erb#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echangelog_uri\u003c/code\u003e to spec metadata 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/erb/pull/89\"\u003eruby/erb#89\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/jgarber623\"\u003e\u003ccode\u003e@​jgarber623\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/erb/pull/89\"\u003eruby/erb#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/ruby/erb/compare/v5.1.1...v5.1.2\"\u003ehttps://github.com/ruby/erb/compare/v5.1.1...v5.1.2\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/ruby/erb/blob/master/NEWS.md\"\u003eerb's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelease v5.1.2 with trusted publishing for JRuby\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003echangelog_uri\u003c/code\u003e to spec metadata \u003ca href=\"https://redirect.github.com/ruby/erb/pull/89\"\u003eruby/erb#89\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/ruby/erb/commit/e8d382a83e899d21621e50fd27ade67ade1c1be5\"\u003e\u003ccode\u003ee8d382a\u003c/code\u003e\u003c/a\u003e Version 5.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/ae5bc380b9adf6ca0fbbf7f4f67d8695541dd646\"\u003e\u003ccode\u003eae5bc38\u003c/code\u003e\u003c/a\u003e Publish a gem for JRuby as well\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/daa0e8712f41ba088b9af63cffd2328aefe6548b\"\u003e\u003ccode\u003edaa0e87\u003c/code\u003e\u003c/a\u003e Version 5.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/fa6a2c9f07ca47a614d7dcf6ecb71d2dc39287af\"\u003e\u003ccode\u003efa6a2c9\u003c/code\u003e\u003c/a\u003e Add a workflow for trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/85a4f10332a6b25b7b807a67447bb9bbfc00f3c3\"\u003e\u003ccode\u003e85a4f10\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003echangelog_uri\u003c/code\u003e to spec metadata (\u003ca href=\"https://redirect.github.com/ruby/erb/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/erb/commit/c231ced3f4c1b6e1b2a41215a45d4df54f44cb10\"\u003e\u003ccode\u003ec231ced\u003c/code\u003e\u003c/a\u003e html_escape: refactor redundant if (\u003ca href=\"https://redirect.github.com/ruby/erb/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ruby/erb/compare/v5.1.1...v5.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `formatador` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geemus/formatador/blob/master/changelog.txt\"\u003eformatador's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.2.2 10/28/25\u003c/h1\u003e\n\u003cp\u003eadd faint\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/geemus/formatador/commit/6cbf36083a8acde5ccbe90e08f2229d6ffe63b42\"\u003e\u003ccode\u003e6cbf360\u003c/code\u003e\u003c/a\u003e Release 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geemus/formatador/commit/9dd7df2195e9a27b2de54b90dfffe56ef8572dda\"\u003e\u003ccode\u003e9dd7df2\u003c/code\u003e\u003c/a\u003e v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geemus/formatador/commit/53aaef72936e377ac5a07dafcb1720ae5ba67ec9\"\u003e\u003ccode\u003e53aaef7\u003c/code\u003e\u003c/a\u003e add faint\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geemus/formatador/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 `irb` from 1.15.2 to 1.15.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/irb/releases\"\u003eirb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.15.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all internal frames from a backtrace 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/irb/pull/1106\"\u003eruby/irb#1106\u003c/a\u003e\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/legal-framework-api/pull/1621","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flegal-framework-api/issues/1621","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1621/packages"}},{"old_version":"7.2.2.2","new_version":"7.2.3","update_type":"patch","path":"/server/src/main/webapp/WEB-INF/rails","pr_created_at":"2025-10-31T18:02:26.000Z","version_change":"7.2.2.2 → 7.2.3","issue":{"uuid":"3575905150","node_id":"PR_kwDOGPTOoc6w4heJ","number":1476,"state":"open","title":"ui-dev: bump actioncable from 7.2.2.2 to 7.2.3 in /server/src/main/webapp/WEB-INF/rails","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":"2025-10-31T18:02:26.000Z","updated_at":"2025-10-31T18:02:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"ui-dev","packages":[{"name":"actioncable","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"}],"path":"/server/src/main/webapp/WEB-INF/rails","ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 7.2.2.2 to 7.2.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/97a940b21dc3f1ad53bc2cee4b2dafcf31d6ea8a\"\u003e\u003ccode\u003e97a940b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4157aaffc767cfe45a9539b79c290a5137b4ea6b\"\u003e\u003ccode\u003e4157aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/05bd95c36b04572f577eb06e1c96dfe6106da161\"\u003e\u003ccode\u003e05bd95c\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d19ccb2908cef464151fbe42003113379673fbf4\"\u003e\u003ccode\u003ed19ccb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1d8b402cd608462cfc0abd4d53ddab40f7a65af4\"\u003e\u003ccode\u003e1d8b402\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a40b1973731784c7fb24fdb7068acabe12a472d2\"\u003e\u003ccode\u003ea40b197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54531\"\u003e#54531\u003c/a\u003e from byroot/action-cable-upgrade-safari\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.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=actioncable\u0026package-manager=bundler\u0026previous-version=7.2.2.2\u0026new-version=7.2.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/v0rts/gocd/pull/1476","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/v0rts%2Fgocd/issues/1476","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1476/packages"}},{"old_version":"7.2.2.2","new_version":"7.2.3","update_type":"patch","path":"/server/src/main/webapp/WEB-INF/rails","pr_created_at":"2025-10-30T06:25:06.000Z","version_change":"7.2.2.2 → 7.2.3","issue":{"uuid":"3569106570","node_id":"PR_kwDOAOdBTs6wiS73","number":13930,"state":"closed","title":"ui-dev: bump actioncable from 7.2.2.2 to 7.2.3 in /server/src/main/webapp/WEB-INF/rails","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T06:30:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-30T06:25:06.000Z","updated_at":"2025-10-30T06:30:30.000Z","time_to_close":322,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"ui-dev","packages":[{"name":"actioncable","old_version":"7.2.2.2","new_version":"7.2.3","repository_url":"https://github.com/rails/rails"}],"path":"/server/src/main/webapp/WEB-INF/rails","ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 7.2.2.2 to 7.2.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\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/bb2bdef2925433a0c5db31b873f9faddf2e2e65d\"\u003e\u003ccode\u003ebb2bdef\u003c/code\u003e\u003c/a\u003e Preparing for 7.2.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/97a940b21dc3f1ad53bc2cee4b2dafcf31d6ea8a\"\u003e\u003ccode\u003e97a940b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/788fde003c6433275fe5f3a8d314c305714858e6\"\u003e\u003ccode\u003e788fde0\u003c/code\u003e\u003c/a\u003e Merge branch '7-2-sec' into 7-2-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/02f0a4a07c31146c8339b0035882e5920ab487d2\"\u003e\u003ccode\u003e02f0a4a\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4157aaffc767cfe45a9539b79c290a5137b4ea6b\"\u003e\u003ccode\u003e4157aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/05bd95c36b04572f577eb06e1c96dfe6106da161\"\u003e\u003ccode\u003e05bd95c\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d19ccb2908cef464151fbe42003113379673fbf4\"\u003e\u003ccode\u003ed19ccb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1d8b402cd608462cfc0abd4d53ddab40f7a65af4\"\u003e\u003ccode\u003e1d8b402\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ad711fabfce6edbcd531e2448bc7c15829b44227\"\u003e\u003ccode\u003ead711fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a40b1973731784c7fb24fdb7068acabe12a472d2\"\u003e\u003ccode\u003ea40b197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54531\"\u003e#54531\u003c/a\u003e from byroot/action-cable-upgrade-safari\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v7.2.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=actioncable\u0026package-manager=bundler\u0026previous-version=7.2.2.2\u0026new-version=7.2.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/gocd/gocd/pull/13930","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocd%2Fgocd/issues/13930","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13930/packages"}},{"old_version":"8.0.3","new_version":"8.0.4","update_type":"patch","path":null,"pr_created_at":"2025-10-29T02:05:56.000Z","version_change":"8.0.3 → 8.0.4","issue":{"uuid":"3564037808","node_id":"PR_kwDOAC7Aw86wRbbr","number":3820,"state":"closed","title":":arrow_up: Bump actioncable from 8.0.3 to 8.0.4","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-10-29T02:08:41.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-29T02:05:56.000Z","updated_at":"2025-10-29T02:08:43.000Z","time_to_close":165,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":":arrow_up: Bump","packages":[{"name":"actioncable","old_version":"8.0.3","new_version":"8.0.4","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.3 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError\u003c/code\u003e when \u003ccode\u003eclass_attribute\u003c/code\u003e is defined on instance singleton classes.\u003c/p\u003e\n\u003cp\u003ePreviously, calling \u003ccode\u003eclass_attribute\u003c/code\u003e on an instance's singleton class would raise\na \u003ccode\u003eNameError\u003c/code\u003e when accessing the attribute through the instance.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eobject = MyClass.new\nobject.singleton_class.class_attribute :foo, default: \u0026quot;bar\u0026quot;\nobject.foo # previously raised NameError, now returns \u0026quot;bar\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\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\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix SQLite3 data loss during table alterations with CASCADE foreign keys.\u003c/p\u003e\n\u003cp\u003eWhen altering a table in SQLite3 that is referenced by child tables with\n\u003ccode\u003eON DELETE CASCADE\u003c/code\u003e foreign keys, ActiveRecord would silently delete all\ndata from the child tables. This occurred because SQLite requires table\nrecreation for schema changes, and during this process the original table\nis temporarily dropped, triggering CASCADE deletes on child tables.\u003c/p\u003e\n\u003cp\u003eThe root cause was incorrect ordering of operations. The original code\nwrapped \u003ccode\u003edisable_referential_integrity\u003c/code\u003e inside a transaction, but\n\u003ccode\u003ePRAGMA foreign_keys\u003c/code\u003e cannot be modified inside a transaction in SQLite -\nattempting to do so simply has no effect. This meant foreign keys remained\nenabled during table recreation, causing CASCADE deletes to fire.\u003c/p\u003e\n\u003cp\u003eThe fix reverses the order to follow the official SQLite 12-step ALTER TABLE\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/624fe3cdb9ab774ff598af29f408425178da6677\"\u003e\u003ccode\u003e624fe3c\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b495d8b0979bbefb9a233a6e1682c87759a7d83\"\u003e\u003ccode\u003e2b495d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55812\"\u003e#55812\u003c/a\u003e from yahonda/bump-microsoftedge-version-to-latest\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.0.4\"\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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.3\u0026new-version=8.0.4)](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)\nDependabot will merge this PR once CI passes on it, as requested by @pglombardo.\n\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/pglombardo/PasswordPusher/pull/3820","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pglombardo%2FPasswordPusher/issues/3820","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3820/packages"}},{"old_version":"8.0.3","new_version":"8.1.0","update_type":"minor","path":null,"pr_created_at":"2025-10-22T09:33:53.000Z","version_change":"8.0.3 → 8.1.0","issue":{"uuid":"3540002988","node_id":"PR_kwDOKvRkY86vBc6p","number":366,"state":"closed","title":"Bump actioncable from 8.0.3 to 8.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-22T14:51:36.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-22T09:33:53.000Z","updated_at":"2025-10-22T14:51:38.000Z","time_to_close":19063,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"actioncable","old_version":"8.0.3","new_version":"8.1.0","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.3 to 8.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated passing a Time object to \u003ccode\u003eTime#since\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eBenchmark.ms\u003c/code\u003e method. It is now defined in the \u003ccode\u003ebenchmark\u003c/code\u003e gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated addition for \u003ccode\u003eTime\u003c/code\u003e instances with \u003ccode\u003eActiveSupport::TimeWithZone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated support for \u003ccode\u003eto_time\u003c/code\u003e to preserve the system local time. It will now always preserve the receiver\ntimezone.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate \u003ccode\u003econfig.active_support.to_time_preserves_timezone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStandardize event name formatting in \u003ccode\u003eassert_event_reported\u003c/code\u003e error messages.\u003c/p\u003e\n\u003cp\u003eThe event name in failure messages now uses \u003ccode\u003e.inspect\u003c/code\u003e (e.g., \u003ccode\u003ename: \u0026quot;user.created\u0026quot;\u003c/code\u003e)\nto match \u003ccode\u003eassert_events_reported\u003c/code\u003e and provide type clarity between strings and symbols.\nThis only affects tests that assert on the failure message format itself.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGeorge Ma\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e to return the full tuple instead of just the first element of the tuple.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOlivier Bellone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix parallel tests hanging when worker processes die abruptly.\u003c/p\u003e\n\u003cp\u003ePreviously, if a worker process was killed (e.g., OOM killed, \u003ccode\u003ekill -9\u003c/code\u003e) during parallel\ntest execution, the test suite would hang forever waiting for the dead worker.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003econfig.active_support.escape_js_separators_in_json\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIntroduce a new framework default to skip escaping LINE SEPARATOR (U+2028) and PARAGRAPH SEPARATOR (U+2029) in JSON.\u003c/p\u003e\n\u003cp\u003eHistorically these characters were not valid inside JavaScript literal strings but that changed in ECMAScript 2019.\nAs such it's no longer a concern in modern browsers: \u003ca href=\"https://caniuse.com/mdn-javascript_builtins_json_json_superset\"\u003ehttps://caniuse.com/mdn-javascript_builtins_json_json_superset\u003c/a\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/rails/rails/blob/v8.1.0/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.1.0 (October 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow passing composite channels to \u003ccode\u003eActionCable::Channel#stream_for\u003c/code\u003e – e.g. \u003ccode\u003estream_for [ group, group.owner ]\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ehey-leon\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting nil as subscription connection identifier for Redis.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNguyen Nguyen\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/8-0-stable/actioncable/CHANGELOG.md\"\u003e8-0-stable\u003c/a\u003e for previous changes.\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/rails/commit/1cdd190a25e483b65f1f25bbd0f13a25d696b461\"\u003e\u003ccode\u003e1cdd190\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1ace68361ed9e87fecbf32604c087d096f7b7f8a\"\u003e\u003ccode\u003e1ace683\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.rc1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b92d3020c662ffe7c58908c0a2be70e20ebfe6a3\"\u003e\u003ccode\u003eb92d302\u003c/code\u003e\u003c/a\u003e Address \u003ccode\u003eCan not start microsoftedge 17.17134 (Windows 10)\u003c/code\u003e error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/207a254cedef2c381c2898bac960b91ce14ab3a7\"\u003e\u003ccode\u003e207a254\u003c/code\u003e\u003c/a\u003e ActiveSupport::Callbacks add a fast path when there is no callbacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/00dc4bf1f1413f34197f3c2be55a8fb8f3bf47af\"\u003e\u003ccode\u003e00dc4bf\u003c/code\u003e\u003c/a\u003e chore(deps-dev): update eslint from 8.57.1 to 9.24.0 with Flat Config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/80827ca7ff33ca3026f2c74fe8249ccc6f513318\"\u003e\u003ccode\u003e80827ca\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.0.beta1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/466777f499b16ea2cf948fbeebd9f4ec89ddc503\"\u003e\u003ccode\u003e466777f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55197\"\u003e#55197\u003c/a\u003e from hey-leon/composite-broadcasting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ff1aa7c65f99446778ffa146e1d8ef89dd1a45f4\"\u003e\u003ccode\u003eff1aa7c\u003c/code\u003e\u003c/a\u003e add to ActionCable changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9a10a82fde88e4171f7231078d8064f68f832614\"\u003e\u003ccode\u003e9a10a82\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a6faaf35f9e57077d74f4a99f3429d40555177f1\"\u003e\u003ccode\u003ea6faaf3\u003c/code\u003e\u003c/a\u003e add additional test cases\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.3\u0026new-version=8.1.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/davidrunger/runger_config/pull/366","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrunger%2Frunger_config/issues/366","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/366/packages"}},{"old_version":"7.2.2.2","new_version":"8.0.3","update_type":"major","path":null,"pr_created_at":"2025-10-07T14:55:33.000Z","version_change":"7.2.2.2 → 8.0.3","issue":{"uuid":"2894310119","node_id":"PR_kwDNQRvOrIOq5w","number":349,"state":"closed","title":"Bump the ruby-deps group across 4 directories with 27 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-07T14:59:39.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-07T14:55:33.000Z","updated_at":"2025-10-07T14:59:39.000Z","time_to_close":246,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-deps","update_count":27,"packages":[{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rexml","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"rubyzip","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rails","old_version":"7.2.2.2","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"actioncable","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailbox","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailer","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionpack","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actiontext","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionview","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activejob","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activemodel","old_version":"7.2.2.2","new_version":"8.0.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-deps group with 1 update in the / directory: [rack](https://github.com/rack/rack).\nBumps the ruby-deps group with 3 updates in the /examples/camping directory: [rack](https://github.com/rack/rack), [rexml](https://github.com/ruby/rexml) and [rubyzip](https://github.com/rubyzip/rubyzip).\nBumps the ruby-deps group with 2 updates in the /examples/rails7 directory: [rack](https://github.com/rack/rack) and [rails](https://github.com/rails/rails).\nBumps the ruby-deps group with 2 updates in the /examples/sinatra directory: [rack](https://github.com/rack/rack) and [sinatra](https://github.com/sinatra/sinatra).\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\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.3 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\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\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\u003eSee full diff in \u003ca href=\"https://github.com/ruby/rexml/compare/v3.4.3...v3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubyzip` from 3.1.0 to 3.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyzip/rubyzip/releases\"\u003erubyzip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.1\u003c/h2\u003e\n\u003cp\u003eVersion 3.1.1\u003c/p\u003e\n\u003cp\u003eThe 3.1.x line adds AES decryption.\u003c/p\u003e\n\u003cp\u003e⚠️ There are breaking changes in the 3.x series ⚠️\u003c/p\u003e\n\u003cp\u003ePlease see the README and \u003ca href=\"https://github.com/rubyzip/rubyzip/wiki/Updating-to-version-3.x\"\u003eUpdating to version 3.x\u003c/a\u003e in the wiki for help upgrading from version 2.4.x to version 3.x.\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/rubyzip/rubyzip/blob/main/Changelog.md\"\u003erubyzip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.1 (2025-09-26)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the IO pipeline when decompressing. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/649\"\u003e#649\u003c/a\u003e (which also fixes \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTooling/internal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the \u003ccode\u003eDecryptedIo\u003c/code\u003e class with various updates and optimizations.\u003c/li\u003e\n\u003cli\u003eRemove the \u003ccode\u003eNullDecrypter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003eProperly convert the test suite to use minitest.\u003c/li\u003e\n\u003cli\u003eMove all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003eUpdates to the Actions CI, including new OS versions.\u003c/li\u003e\n\u003cli\u003eUpdate rubocop versions and fix resultant cop failures. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/646\"\u003e#646\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/rubyzip/rubyzip/commit/f87340db528531e5e96b13219bf7651551c43f5a\"\u003e\u003ccode\u003ef87340d\u003c/code\u003e\u003c/a\u003e Update version number and Changelog for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/813d96da709af363c32bc46ca8b293bb1d9dd9b3\"\u003e\u003ccode\u003e813d96d\u003c/code\u003e\u003c/a\u003e Add a Rubocop badge to the README.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/61c25b021a80c2309ea408619c2491b807a11fa9\"\u003e\u003ccode\u003e61c25b0\u003c/code\u003e\u003c/a\u003e Reduce the number of YJIT test runs in CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/69dcb8e202e64a3016d2040746c9e262262b579f\"\u003e\u003ccode\u003e69dcb8e\u003c/code\u003e\u003c/a\u003e Allow Windows CI builds to fail.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/da44b2ce65785de6cffa0266db0a11ad656fb9f1\"\u003e\u003ccode\u003eda44b2c\u003c/code\u003e\u003c/a\u003e Update OS versions in the Actions CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/fd78455269216e123fcf8199a83a49bda1a2e0ae\"\u003e\u003ccode\u003efd78455\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003erequire_relative\u003c/code\u003e when pulling in \u003ccode\u003etest_helper\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/78848c59edd7dfbc073180f8a6d7d469a3376558\"\u003e\u003ccode\u003e78848c5\u003c/code\u003e\u003c/a\u003e Only require test helpers where they are needed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/e55f7c9bcbd66e9e0d9cfb5637d769e5e067eb2c\"\u003e\u003ccode\u003ee55f7c9\u003c/code\u003e\u003c/a\u003e Move all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/5f1fcb2761735c6466fbb91c69de42d8b15850f6\"\u003e\u003ccode\u003e5f1fcb2\u003c/code\u003e\u003c/a\u003e Remove unnecessary perms from \u003ccode\u003egentestfiles.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/ceabd0397444f3c969bac6f11d2d817d6d6678fe\"\u003e\u003ccode\u003eceabd03\u003c/code\u003e\u003c/a\u003e Remove unnecessary \u003ccode\u003erequire\u003c/code\u003es from \u003ccode\u003etest_helper.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyzip/rubyzip/compare/v3.1.0...v3.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 7.2.2.2 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the Postgresql adapter always use a dedicated connection even during system tests.\u003c/p\u003e\n\u003cp\u003eFix an issue with the Action Cable Postgresql adapter causing deadlock or various weird\npg client error during system tests.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 7.2.2.2 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailbox/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a993c27a50395e727872600b5669976ff0a272e7\"\u003e\u003ccode\u003ea993c27\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dd8f7185faeca6ee968a6e9367f6d8601a83b8db\"\u003e\u003ccode\u003edd8f718\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/84f47ad72fa60b8f90fdb1eac91c30d00e4e99d5\"\u003e\u003ccode\u003e84f47ad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f97b86662c6510b599eb74e9e23c960032d6b082\"\u003e\u003ccode\u003ef97b866\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003ewith_routing\u003c/code\u003e test helper to not rebuild the middleware stack.\u003c/p\u003e\n\u003cp\u003eOtherwise some middleware configuration could be lost.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 7.2.2.2 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate vendored trix version to 2.1.10\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJohn Hawthorn\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003ehtml_options[:form]\u003c/code\u003e when \u003ccode\u003ecollection_checkboxes\u003c/code\u003e generates the\nhidden \u003ccode\u003e\u0026lt;input\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRiccardo Odone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLayouts have access to local variables passed to \u003ccode\u003erender\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/31680\"\u003e#31680\u003c/a\u003e which was a regression in Rails 5.1.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eArgument errors related to strict locals in templates now raise an\n\u003ccode\u003eActionView::StrictLocalsError\u003c/code\u003e, and all other argument errors are reraised as-is.\u003c/p\u003e\n\u003cp\u003ePreviously, any \u003ccode\u003eArgumentError\u003c/code\u003e raised during template rendering was swallowed during strict\nlocal error handling, so that an \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals (e.g., a helper\nmethod invoked with incorrect arguments) would be replaced by a similar \u003ccode\u003eArgumentError\u003c/code\u003e with an\nunrelated backtrace, making it difficult to debug templates.\u003c/p\u003e\n\u003cp\u003eNow, any \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals is reraised, preserving the original\nbacktrace for developers.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 7.2.2.2 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid crashing in Active Job logger when logging enqueueing errors\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e could fail with a \u003ccode\u003eTypeError\u003c/code\u003e when all\nprovided jobs failed to be enqueueed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEfstathios Stivaros\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated \u003ccode\u003econfig.active_job.use_big_decimal_serializer\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 7.2.2.2 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSuppo...\n\n_Description has been truncated_","html_url":"https://github.com/jruby/jruby-rack/pull/349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-rack/issues/349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/349/packages"}},{"old_version":"7.2.2.2","new_version":"8.0.3","update_type":"major","path":null,"pr_created_at":"2025-10-07T14:51:42.000Z","version_change":"7.2.2.2 → 8.0.3","issue":{"uuid":"2894294821","node_id":"PR_kwDNQRvOrINvJQ","number":348,"state":"closed","title":"1.2.x: Bump the ruby-deps group across 4 directories with 27 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-07T14:53:16.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-07T14:51:42.000Z","updated_at":"2025-10-07T14:53:16.000Z","time_to_close":94,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"1.2.x: Bump","group_name":"ruby-deps","update_count":27,"packages":[{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rexml","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"rubyzip","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"rails","old_version":"7.2.2.2","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"rack","old_version":"2.2.18","new_version":"2.2.19","repository_url":"https://github.com/rack/rack"},{"name":"actioncable","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailbox","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionmailer","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionpack","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actiontext","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"actionview","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activejob","old_version":"7.2.2.2","new_version":"8.0.3"},{"name":"activemodel","old_version":"7.2.2.2","new_version":"8.0.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-deps group with 1 update in the / directory: [rack](https://github.com/rack/rack).\nBumps the ruby-deps group with 3 updates in the /examples/camping directory: [rack](https://github.com/rack/rack), [rexml](https://github.com/ruby/rexml) and [rubyzip](https://github.com/rubyzip/rubyzip).\nBumps the ruby-deps group with 2 updates in the /examples/rails7 directory: [rack](https://github.com/rack/rack) and [rails](https://github.com/rails/rails).\nBumps the ruby-deps group with 2 updates in the /examples/sinatra directory: [rack](https://github.com/rack/rack) and [sinatra](https://github.com/sinatra/sinatra).\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\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.3 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\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\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\u003eSee full diff in \u003ca href=\"https://github.com/ruby/rexml/compare/v3.4.3...v3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubyzip` from 3.1.0 to 3.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyzip/rubyzip/releases\"\u003erubyzip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.1\u003c/h2\u003e\n\u003cp\u003eVersion 3.1.1\u003c/p\u003e\n\u003cp\u003eThe 3.1.x line adds AES decryption.\u003c/p\u003e\n\u003cp\u003e⚠️ There are breaking changes in the 3.x series ⚠️\u003c/p\u003e\n\u003cp\u003ePlease see the README and \u003ca href=\"https://github.com/rubyzip/rubyzip/wiki/Updating-to-version-3.x\"\u003eUpdating to version 3.x\u003c/a\u003e in the wiki for help upgrading from version 2.4.x to version 3.x.\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/rubyzip/rubyzip/blob/main/Changelog.md\"\u003erubyzip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.1 (2025-09-26)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the IO pipeline when decompressing. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/649\"\u003e#649\u003c/a\u003e (which also fixes \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTooling/internal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the \u003ccode\u003eDecryptedIo\u003c/code\u003e class with various updates and optimizations.\u003c/li\u003e\n\u003cli\u003eRemove the \u003ccode\u003eNullDecrypter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003eProperly convert the test suite to use minitest.\u003c/li\u003e\n\u003cli\u003eMove all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003eUpdates to the Actions CI, including new OS versions.\u003c/li\u003e\n\u003cli\u003eUpdate rubocop versions and fix resultant cop failures. \u003ca href=\"https://redirect.github.com/rubyzip/rubyzip/pull/646\"\u003e#646\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/rubyzip/rubyzip/commit/f87340db528531e5e96b13219bf7651551c43f5a\"\u003e\u003ccode\u003ef87340d\u003c/code\u003e\u003c/a\u003e Update version number and Changelog for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/813d96da709af363c32bc46ca8b293bb1d9dd9b3\"\u003e\u003ccode\u003e813d96d\u003c/code\u003e\u003c/a\u003e Add a Rubocop badge to the README.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/61c25b021a80c2309ea408619c2491b807a11fa9\"\u003e\u003ccode\u003e61c25b0\u003c/code\u003e\u003c/a\u003e Reduce the number of YJIT test runs in CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/69dcb8e202e64a3016d2040746c9e262262b579f\"\u003e\u003ccode\u003e69dcb8e\u003c/code\u003e\u003c/a\u003e Allow Windows CI builds to fail.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/da44b2ce65785de6cffa0266db0a11ad656fb9f1\"\u003e\u003ccode\u003eda44b2c\u003c/code\u003e\u003c/a\u003e Update OS versions in the Actions CI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/fd78455269216e123fcf8199a83a49bda1a2e0ae\"\u003e\u003ccode\u003efd78455\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003erequire_relative\u003c/code\u003e when pulling in \u003ccode\u003etest_helper\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/78848c59edd7dfbc073180f8a6d7d469a3376558\"\u003e\u003ccode\u003e78848c5\u003c/code\u003e\u003c/a\u003e Only require test helpers where they are needed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/e55f7c9bcbd66e9e0d9cfb5637d769e5e067eb2c\"\u003e\u003ccode\u003ee55f7c9\u003c/code\u003e\u003c/a\u003e Move all test helper code into separate files.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/5f1fcb2761735c6466fbb91c69de42d8b15850f6\"\u003e\u003ccode\u003e5f1fcb2\u003c/code\u003e\u003c/a\u003e Remove unnecessary perms from \u003ccode\u003egentestfiles.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyzip/rubyzip/commit/ceabd0397444f3c969bac6f11d2d817d6d6678fe\"\u003e\u003ccode\u003eceabd03\u003c/code\u003e\u003c/a\u003e Remove unnecessary \u003ccode\u003erequire\u003c/code\u003es from \u003ccode\u003etest_helper.rb\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyzip/rubyzip/compare/v3.1.0...v3.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 7.2.2.2 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack` from 2.2.18 to 2.2.19\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rack/rack/blob/main/CHANGELOG.md\"\u003erack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.2.19] - 2025-10-07\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-wpv5-97wm-hp9c\"\u003eCVE-2025-61772\u003c/a\u003e Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-w9pc-fmgc-vxvw\"\u003eCVE-2025-61771\u003c/a\u003e Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/advisories/GHSA-p543-xpfm-54cp\"\u003eCVE-2025-61770\u003c/a\u003e Unbounded multipart preamble buffering enables DoS (memory exhaustion)\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/rack/rack/commit/4c4ea296fdfd115377912aa7dbcb55b83bf2888e\"\u003e\u003ccode\u003e4c4ea29\u003c/code\u003e\u003c/a\u003e Bump patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/c370dcd9405a6799763b70a83f06ae2d1aaa0e87\"\u003e\u003ccode\u003ec370dcd\u003c/code\u003e\u003c/a\u003e Limit amount of retained data when parsing multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rack/rack/commit/d869fed663b113b95a74ad53e1b5cae6ab31f29e\"\u003e\u003ccode\u003ed869fed\u003c/code\u003e\u003c/a\u003e Fix denial of service vulnerbilties in multipart parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rack/rack/compare/v2.2.18...v2.2.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the Postgresql adapter always use a dedicated connection even during system tests.\u003c/p\u003e\n\u003cp\u003eFix an issue with the Action Cable Postgresql adapter causing deadlock or various weird\npg client error during system tests.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 7.2.2.2 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailbox/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a993c27a50395e727872600b5669976ff0a272e7\"\u003e\u003ccode\u003ea993c27\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/dd8f7185faeca6ee968a6e9367f6d8601a83b8db\"\u003e\u003ccode\u003edd8f718\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.0 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/84f47ad72fa60b8f90fdb1eac91c30d00e4e99d5\"\u003e\u003ccode\u003e84f47ad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f97b86662c6510b599eb74e9e23c960032d6b082\"\u003e\u003ccode\u003ef97b866\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003ewith_routing\u003c/code\u003e test helper to not rebuild the middleware stack.\u003c/p\u003e\n\u003cp\u003eOtherwise some middleware configuration could be lost.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 7.2.2.2 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate vendored trix version to 2.1.10\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJohn Hawthorn\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003ehtml_options[:form]\u003c/code\u003e when \u003ccode\u003ecollection_checkboxes\u003c/code\u003e generates the\nhidden \u003ccode\u003e\u0026lt;input\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRiccardo Odone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLayouts have access to local variables passed to \u003ccode\u003erender\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/31680\"\u003e#31680\u003c/a\u003e which was a regression in Rails 5.1.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eArgument errors related to strict locals in templates now raise an\n\u003ccode\u003eActionView::StrictLocalsError\u003c/code\u003e, and all other argument errors are reraised as-is.\u003c/p\u003e\n\u003cp\u003ePreviously, any \u003ccode\u003eArgumentError\u003c/code\u003e raised during template rendering was swallowed during strict\nlocal error handling, so that an \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals (e.g., a helper\nmethod invoked with incorrect arguments) would be replaced by a similar \u003ccode\u003eArgumentError\u003c/code\u003e with an\nunrelated backtrace, making it difficult to debug templates.\u003c/p\u003e\n\u003cp\u003eNow, any \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals is reraised, preserving the original\nbacktrace for developers.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 7.2.2.2 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid crashing in Active Job logger when logging enqueueing errors\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e could fail with a \u003ccode\u003eTypeError\u003c/code\u003e when all\nprovided jobs failed to be enqueueed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEfstathios Stivaros\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated \u003ccode\u003econfig.active_job.use_big_decimal_serializer\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 7.2.2.2 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSuppo...\n\n_Description has been truncated_","html_url":"https://github.com/jruby/jruby-rack/pull/348","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-rack/issues/348","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/348/packages"}},{"old_version":"8.0.2.1","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-29T04:31:29.000Z","version_change":"8.0.2.1 → 8.0.3","issue":{"uuid":"2868991659","node_id":"PR_kwDOAmAyHM6rAVar","number":151,"state":"open","title":"Bump the semver_updates group with 22 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T04:31:29.000Z","updated_at":"2025-09-29T04:31:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"semver_updates","update_count":22,"packages":[{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1162.0","new_version":"1.1166.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-kms","old_version":"1.112.0","new_version":"1.113.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-s3","old_version":"1.199.0","new_version":"1.199.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"mime-types-data","old_version":"3.2025.0916","new_version":"3.2025.0924","repository_url":"https://github.com/mime-types/mime-types-data"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"rubyzip","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"sass-embedded","old_version":"1.93.0","new_version":"1.93.2","repository_url":"https://github.com/sass-contrib/sass-embedded-host-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the semver_updates group with 22 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1162.0` | `1.1166.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [aws-sdk-kms](https://github.com/aws/aws-sdk-ruby) | `1.112.0` | `1.113.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.199.0` | `1.199.1` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [mime-types-data](https://github.com/mime-types/mime-types-data) | `3.2025.0916` | `3.2025.0924` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `3.1.0` | `3.1.1` |\n| [sass-embedded](https://github.com/sass-contrib/sass-embedded-host-ruby) | `1.93.0` | `1.93.2` |\n\nUpdates `rails` from 8.0.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\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.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/830363adf5a1d04204cd1567d6ac948abd05c430\"\u003e\u003ccode\u003e830363a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55688\"\u003e#55688\u003c/a\u003e from Shopify/drop-active-support-benchmar-extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c9a82e214046ec0daa06dc0b1718e948ccdc7c9a\"\u003e\u003ccode\u003ec9a82e2\u003c/code\u003e\u003c/a\u003e BigDecimal now works with floats without precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae1aa389499547813879386d9bd22aa4402d9650\"\u003e\u003ccode\u003eae1aa38\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53093\"\u003e#53093\u003c/a\u003e from armstrjare/broadcast-logger-with-block\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-partitions` from 1.1162.0 to 1.1166.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-partitions/CHANGELOG.md\"\u003eaws-partitions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1166.0 (2025-09-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1165.0 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1164.0 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.1163.0 (2025-09-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated the partitions source data the determines the AWS service regions and endpoints.\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 `aws-sdk-core` from 3.232.0 to 3.233.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.233.0 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Updated Aws::SSOOIDC::Client with the latest API changes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - This release includes exception definition and documentation updates.\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\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 `aws-sdk-kms` from 1.112.0 to 1.113.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-kms/CHANGELOG.md\"\u003eaws-sdk-kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.113.0 (2025-09-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Documentation only updates for KMS.\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 `aws-sdk-s3` from 1.199.0 to 1.199.1\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.199.1 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Update \u003ccode\u003eTransferManager#download_file\u003c/code\u003e and \u003ccode\u003eObject#download_file\u003c/code\u003e documentation regarding temporary file usage and failure handling for different destination types.\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 `globalid` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/globalid/releases\"\u003eglobalid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet required ruby version to 2.7.0 and up by \u003ca href=\"https://github.com/risen\"\u003e\u003ccode\u003e@​risen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/169\"\u003erails/globalid#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep using URI RFC2396 parser by \u003ca href=\"https://github.com/voxik\"\u003e\u003ccode\u003e@​voxik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/192\"\u003erails/globalid#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eDEFAULT_LOCATOR\u003c/code\u003e Configurable by \u003ca href=\"https://github.com/heka1024\"\u003e\u003ccode\u003e@​heka1024\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/179\"\u003erails/globalid#179\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/risen\"\u003e\u003ccode\u003e@​risen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/169\"\u003erails/globalid#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/botandrosedesign/rw24/pull/151","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/botandrosedesign%2Frw24/issues/151","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/151/packages"}},{"old_version":"7.2.2.2","new_version":"8.0.3","update_type":"major","path":null,"pr_created_at":"2025-09-29T00:03:03.000Z","version_change":"7.2.2.2 → 8.0.3","issue":{"uuid":"2868593044","node_id":"PR_kwDOAHKnzc6q-0GU","number":3330,"state":"open","title":"Bump activejob, activesupport, activerecord, activemodel, railties, actionpack, actionview, actionmailer and actioncable","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T00:03:03.000Z","updated_at":"2025-09-29T00:03:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"activejob, activesupport, activerecord, activemodel, railties, actionpack, actionview, actionmailer"},{"name":"actioncable","repository_url":"https://github.com/rails/rails","old_version":"7.2.2.2","new_version":"8.0.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [activejob](https://github.com/rails/rails), [activesupport](https://github.com/rails/rails), [activerecord](https://github.com/rails/rails), [activemodel](https://github.com/rails/rails), [railties](https://github.com/rails/rails), [actionpack](https://github.com/rails/rails), [actionview](https://github.com/rails/rails), [actionmailer](https://github.com/rails/rails) and [actioncable](https://github.com/rails/rails). These dependencies needed to be updated together.\nUpdates `activejob` from 7.2.2.2 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid crashing in Active Job logger when logging enqueueing errors\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eActiveJob.perform_all_later\u003c/code\u003e could fail with a \u003ccode\u003eTypeError\u003c/code\u003e when all\nprovided jobs failed to be enqueueed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEfstathios Stivaros\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated \u003ccode\u003econfig.active_job.use_big_decimal_serializer\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 7.2.2.2 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/830363adf5a1d04204cd1567d6ac948abd05c430\"\u003e\u003ccode\u003e830363a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55688\"\u003e#55688\u003c/a\u003e from Shopify/drop-active-support-benchmar-extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c9a82e214046ec0daa06dc0b1718e948ccdc7c9a\"\u003e\u003ccode\u003ec9a82e2\u003c/code\u003e\u003c/a\u003e BigDecimal now works with floats without precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae1aa389499547813879386d9bd22aa4402d9650\"\u003e\u003ccode\u003eae1aa38\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53093\"\u003e#53093\u003c/a\u003e from armstrjare/broadcast-logger-with-block\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 7.2.2.2 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 7.2.2.2 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003e:except_on\u003c/code\u003e option for validations. Grants the ability to \u003cem\u003eskip\u003c/em\u003e validations in specified contexts.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eclass User \u0026lt; ApplicationRecord\n    #...\n    validates :birthday, presence: { except_on: :admin }\n    #...\nend\n\u003cp\u003e\u003c/code\u003e\u003c/pre\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `railties` from 7.2.2.2 to 8.0.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\"\u003erailties's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/railties/CHANGELOG.md\"\u003erailties's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003epolymorphic_url\u003c/code\u003e and \u003ccode\u003epolymorphic_path\u003c/code\u003e not working when routes are not loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rails console to not override user defined IRB_NAME.\u003c/p\u003e\n\u003cp\u003eOnly change the prompt name if it hasn't been customized in \u003ccode\u003e.irbrc\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJarrett Lusso\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rails console to load routes.\u003c/p\u003e\n\u003cp\u003eOtherwise \u003ccode\u003e*_path\u003c/code\u003e and \u003ccode\u003e*url\u003c/code\u003e methods are missing on the \u003ccode\u003eapp\u003c/code\u003e object.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003erails new --minimal\u003c/code\u003e option\u003c/p\u003e\n\u003cp\u003eExtend the \u003ccode\u003e--minimal\u003c/code\u003e flag to exclude recently added features:\n\u003ccode\u003eskip_brakeman\u003c/code\u003e, \u003ccode\u003eskip_ci\u003c/code\u003e, \u003ccode\u003eskip_docker\u003c/code\u003e, \u003ccode\u003eskip_kamal\u003c/code\u003e, \u003ccode\u003eskip_rubocop\u003c/code\u003e, \u003ccode\u003eskip_solid\u003c/code\u003e and \u003ccode\u003eskip_thruster\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eeelcoj\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003esecret_key_base\u003c/code\u003e from ENV or credentials when present locally.\u003c/p\u003e\n\u003cp\u003eWhen ENV[\u0026quot;SECRET_KEY_BASE\u0026quot;] or\n\u003ccode\u003eRails.application.credentials.secret_key_base\u003c/code\u003e is set for test or\ndevelopment, it is used for the \u003ccode\u003eRails.config.secret_key_base\u003c/code\u003e,\ninstead of generating a \u003ccode\u003etmp/local_secret.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePetrik de Heus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSkip generation system tests related code for CI when \u003ccode\u003e--skip-system-test\u003c/code\u003e is given.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add bin/thrust if thruster is not in Gemfile.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7ec132e320cbd074678aaa9a6a0d140bac7bb0b\"\u003e\u003ccode\u003ef7ec132\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55495\"\u003e#55495\u003c/a\u003e from joaquintomas2003/authentication_test_files_gen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/09d468bf17991d591d91ffd25294ecfb6d42b75f\"\u003e\u003ccode\u003e09d468b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55227\"\u003e#55227\u003c/a\u003e from fabricerenard12/55215_name_error_health_contro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4aa38935138b8684a881a6d8d9ae0bc5411e75ee\"\u003e\u003ccode\u003e4aa3893\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55622\"\u003e#55622\u003c/a\u003e from zzak/8-0-54031\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 7.2.2.2 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003ewith_routing\u003c/code\u003e test helper to not rebuild the middleware stack.\u003c/p\u003e\n\u003cp\u003eOtherwise some middleware configuration could be lost.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 7.2.2.2 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003ehtml_options[:form]\u003c/code\u003e when \u003ccode\u003ecollection_checkboxes\u003c/code\u003e generates the\nhidden \u003ccode\u003e\u0026lt;input\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRiccardo Odone\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLayouts have access to local variables passed to \u003ccode\u003erender\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes \u003ca href=\"https://redirect.github.com/rails/rails/issues/31680\"\u003e#31680\u003c/a\u003e which was a regression in Rails 5.1.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eArgument errors related to strict locals in templates now raise an\n\u003ccode\u003eActionView::StrictLocalsError\u003c/code\u003e, and all other argument errors are reraised as-is.\u003c/p\u003e\n\u003cp\u003ePreviously, any \u003ccode\u003eArgumentError\u003c/code\u003e raised during template rendering was swallowed during strict\nlocal error handling, so that an \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals (e.g., a helper\nmethod invoked with incorrect arguments) would be replaced by a similar \u003ccode\u003eArgumentError\u003c/code\u003e with an\nunrelated backtrace, making it difficult to debug templates.\u003c/p\u003e\n\u003cp\u003eNow, any \u003ccode\u003eArgumentError\u003c/code\u003e unrelated to strict locals is reraised, preserving the original\nbacktrace for developers.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 7.2.2.2 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.beta1 (September 26, 2024)\u003c/h2\u003e\n\u003cp\u003ePlease check \u003ca href=\"https://github.com/rails/rails/blob/7-2-stable/actionmailer/CHANGELOG.md\"\u003e7-2-stable\u003c/a\u003e for previous changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3235827585d87661942c91bc81f64f56d710f0b2\"\u003e\u003ccode\u003e3235827\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/84f47ad72fa60b8f90fdb1eac91c30d00e4e99d5\"\u003e\u003ccode\u003e84f47ad\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54702\"\u003e#54702\u003c/a\u003e from fatkodima/fix-action_mailer-default_options-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/664444268c5977e6afc69bd27b865c25c7daeaad\"\u003e\u003ccode\u003e6644442\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54617\"\u003e#54617\u003c/a\u003e from byroot/move-strict-warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f97b86662c6510b599eb74e9e23c960032d6b082\"\u003e\u003ccode\u003ef97b866\u003c/code\u003e\u003c/a\u003e Use monospace formatting [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cf6ff17e9a3c6c1139040b519a341f55f0be16cf\"\u003e\u003ccode\u003ecf6ff17\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 7.2.2.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2 (March 12, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.1 (December 13, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the Postgresql adapter always use a dedicated connection even during system tests.\u003c/p\u003e\n\u003cp\u003eFix an issue with the Action Cable Postgresql adapter causing deadlock or various weird\npg client error during system tests.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.1 (December 10, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0 (November 07, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc2 (October 30, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.0.rc1 (October 19, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v7.2.2.2...v8.0.3\"\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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/MushroomObserver/mushroom-observer/pull/3330","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MushroomObserver%2Fmushroom-observer/issues/3330","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3330/packages"}},{"old_version":"8.0.2.1","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-28T20:05:38.000Z","version_change":"8.0.2.1 → 8.0.3","issue":{"uuid":"2868361237","node_id":"PR_kwDOFVnQpc6q97gV","number":2267,"state":"open","title":"Chore(deps): Bump the bundler group with 25 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-28T20:05:38.000Z","updated_at":"2025-09-30T06:42:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"bundler","update_count":25,"packages":[{"name":"aws-sdk-s3","old_version":"1.199.0","new_version":"1.199.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.28.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.28.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1162.0","new_version":"1.1166.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-kms","old_version":"1.112.0","new_version":"1.113.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"http-cookie","old_version":"1.0.8","new_version":"1.1.0","repository_url":"https://github.com/sparklemotion/http-cookie"},{"name":"json","old_version":"2.14.1","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"mime-types-data","old_version":"3.2025.0916","new_version":"3.2025.0924","repository_url":"https://github.com/mime-types/mime-types-data"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/redis-rb/redis-client"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 25 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.199.0` | `1.199.1` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.28.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.28.0` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1162.0` | `1.1166.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [aws-sdk-kms](https://github.com/aws/aws-sdk-ruby) | `1.112.0` | `1.113.0` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [http-cookie](https://github.com/sparklemotion/http-cookie) | `1.0.8` | `1.1.0` |\n| [json](https://github.com/ruby/json) | `2.14.1` | `2.15.0` |\n| [mime-types-data](https://github.com/mime-types/mime-types-data) | `3.2025.0916` | `3.2025.0924` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.1` |\n\nUpdates `aws-sdk-s3` from 1.199.0 to 1.199.1\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.199.1 (2025-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Update \u003ccode\u003eTransferManager#download_file\u003c/code\u003e and \u003ccode\u003eObject#download_file\u003c/code\u003e documentation regarding temporary file usage and failure handling for different destination types.\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 `puma` from 7.0.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.28.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\u003e5.28.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-enable Rails structured logging when \u003ccode\u003eenable_logs\u003c/code\u003e is true (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2721\"\u003e#2721\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate all Metrics related APIs \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2726\"\u003e#2726\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSentry \u003ca href=\"https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th\"\u003eno longer has the Metrics Beta offering\u003c/a\u003e so\nall the following APIs linked to Metrics have been deprecated and will be removed in the next major.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.metrics.enabled = true\n  config.metrics.enable_code_locations = true\n  config.metrics.before_emit = lambda {}\nend\n\u003cp\u003eSentry::Metrics.increment('button_click')\u003cbr /\u003e\nSentry::Metrics.distribution('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.gauge('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.set('user_view', 'jane')\u003cbr /\u003e\nSentry::Metrics.timing('how_long') { sleep(1) }\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix leftover \u003ccode\u003econfig.logger\u003c/code\u003e call in \u003ccode\u003egraphql\u003c/code\u003e patch (\u003ca href=\"https://github.com/getsentry/sentry-ruby/2722\"\u003e#2722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConfiguration.before\u003c/code\u003e and \u003ccode\u003eConfiguration.after\u003c/code\u003e to run hooks before and after given event (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/44d588ecc66247fc191a96a802593ac55505067d\"\u003e\u003ccode\u003e44d588e\u003c/code\u003e\u003c/a\u003e release: 5.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/2c8c2c177184d948140bd8a9cb651a024fae1bdb\"\u003e\u003ccode\u003e2c8c2c1\u003c/code\u003e\u003c/a\u003e feat(logging): auto-enable structured_logging in Rails (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2721\"\u003e#2721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 5.27.0 to 5.28.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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.28.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-enable Rails structured logging when \u003ccode\u003eenable_logs\u003c/code\u003e is true (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2721\"\u003e#2721\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate all Metrics related APIs \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2726\"\u003e#2726\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSentry \u003ca href=\"https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Ended-on-October-7th\"\u003eno longer has the Metrics Beta offering\u003c/a\u003e so\nall the following APIs linked to Metrics have been deprecated and will be removed in the next major.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  # ...\n  config.metrics.enabled = true\n  config.metrics.enable_code_locations = true\n  config.metrics.before_emit = lambda {}\nend\n\u003cp\u003eSentry::Metrics.increment('button_click')\u003cbr /\u003e\nSentry::Metrics.distribution('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.gauge('page_load', 15.0, unit: 'millisecond')\u003cbr /\u003e\nSentry::Metrics.set('user_view', 'jane')\u003cbr /\u003e\nSentry::Metrics.timing('how_long') { sleep(1) }\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix leftover \u003ccode\u003econfig.logger\u003c/code\u003e call in \u003ccode\u003egraphql\u003c/code\u003e patch (\u003ca href=\"https://github.com/getsentry/sentry-ruby/2722\"\u003e#2722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConfiguration.before\u003c/code\u003e and \u003ccode\u003eConfiguration.after\u003c/code\u003e to run hooks before and after given event (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/44d588ecc66247fc191a96a802593ac55505067d\"\u003e\u003ccode\u003e44d588e\u003c/code\u003e\u003c/a\u003e release: 5.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/20667ee8a48690f4857bc1f16047f563115516bc\"\u003e\u003ccode\u003e20667ee\u003c/code\u003e\u003c/a\u003e Deprecate metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2726\"\u003e#2726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/43e5788ebfbd7f6047958a50b27ff8427416eb97\"\u003e\u003ccode\u003e43e5788\u003c/code\u003e\u003c/a\u003e Add new configuration callbacks (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/076adb70e99598e18de46680ecae064755ac7045\"\u003e\u003ccode\u003e076adb7\u003c/code\u003e\u003c/a\u003e Fix old logger call in graphql (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2722\"\u003e#2722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1da1c2db805ea15fb68dd667774b14a36df1009c\"\u003e\u003ccode\u003e1da1c2d\u003c/code\u003e\u003c/a\u003e Skip sentry.message.template when there are no parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-hmrc-interface-service-api/pull/2267","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-hmrc-interface-service-api/issues/2267","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2267/packages"}},{"old_version":"8.0.2.1","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-24T09:13:49.000Z","version_change":"8.0.2.1 → 8.0.3","issue":{"uuid":"2856125888","node_id":"PR_kwDOJAseVs6qPQXA","number":1627,"state":"closed","title":"Chore(deps): Bump the bundler group with 23 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-25T02:04:30.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-24T09:13:49.000Z","updated_at":"2025-09-25T02:04:30.000Z","time_to_close":60641,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"bundler","update_count":23,"packages":[{"name":"propshaft","old_version":"1.2.1","new_version":"1.3.1","repository_url":"https://github.com/rails/propshaft"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1161.0","new_version":"1.1164.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"better_html","old_version":"2.1.1","new_version":"2.2.0","repository_url":"https://github.com/Shopify/better-html"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"json","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/redis-rb/redis-client"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 23 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [propshaft](https://github.com/rails/propshaft) | `1.2.1` | `1.3.1` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1161.0` | `1.1164.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [better_html](https://github.com/Shopify/better-html) | `2.1.1` | `2.2.0` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [json](https://github.com/ruby/json) | `2.14.0` | `2.15.0` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.0` |\n\nUpdates `propshaft` from 1.2.1 to 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/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTurn Propshaft::Server into a proper middleware by \u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/propshaft/compare/v1.2.1...v1.3.0\"\u003ehttps://github.com/rails/propshaft/compare/v1.2.1...v1.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/rails/propshaft/commit/68bb8c5758b587d5184e6d13173cb057beec8d3c\"\u003e\u003ccode\u003e68bb8c5\u003c/code\u003e\u003c/a\u003e Prepare for 1.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/4024092b8be6a5365170433eaae8bb4275b31f21\"\u003e\u003ccode\u003e4024092\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/253\"\u003e#253\u003c/a\u003e from rails/rm-fix-middleware\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/fad626fdd46117b9381c0e3763fe0023ec6f60f2\"\u003e\u003ccode\u003efad626f\u003c/code\u003e\u003c/a\u003e Move Propshaft::Server middleware before \u003ccode\u003eActionDispatch::Executor\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8ebcd4573653d503167f3c8a1e375fc9ffa0407c\"\u003e\u003ccode\u003e8ebcd45\u003c/code\u003e\u003c/a\u003e Prepare for 1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/84d9a558f78de177914d2772c9b90f671d85833f\"\u003e\u003ccode\u003e84d9a55\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/249\"\u003e#249\u003c/a\u003e from byroot/rack-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/b38964096a2f5238b64a80f992a72daf95704322\"\u003e\u003ccode\u003eb389640\u003c/code\u003e\u003c/a\u003e Turn Propshaft::Server into a proper middleware\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.2.1...v1.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.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.27.1\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\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 5.27.0 to 5.27.1\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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1da1c2db805ea15fb68dd667774b14a36df1009c\"\u003e\u003ccode\u003e1da1c2d\u003c/code\u003e\u003c/a\u003e Skip sentry.message.template when there are no parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\u003c/p\u003e\n\u003c/li\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-assure-hmrc-data/pull/1627","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assure-hmrc-data/issues/1627","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1627/packages"}},{"old_version":"8.0.2.1","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-24T02:05:32.000Z","version_change":"8.0.2.1 → 8.0.3","issue":{"uuid":"2855083977","node_id":"PR_kwDODdTws86qLR_J","number":3093,"state":"closed","title":"Bump the bundler group with 21 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-24T10:18:47.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-24T02:05:32.000Z","updated_at":"2025-09-24T10:18:48.000Z","time_to_close":29595,"merged_at":"2025-09-24T10:18:47.000Z","merged_by":"patrick-laa","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":21,"packages":[{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"globalid","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/globalid"},{"name":"json","old_version":"2.13.2","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/redis-rb/redis-client"},{"name":"rubocop-ast","old_version":"1.46.0","new_version":"1.47.1","repository_url":"https://github.com/rubocop/rubocop-ast"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 21 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [globalid](https://github.com/rails/globalid) | `1.2.1` | `1.3.0` |\n| [json](https://github.com/ruby/json) | `2.13.2` | `2.15.0` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.0` |\n| [rubocop-ast](https://github.com/rubocop/rubocop-ast) | `1.46.0` | `1.47.1` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n\nUpdates `puma` from 7.0.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.27.1\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\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 5.27.0 to 5.27.1\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-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activestorage/CHANGELOG.md\"\u003eactivestorage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAddress deprecation of \u003ccode\u003eAws::S3::Object#upload_stream\u003c/code\u003e in \u003ccode\u003eActiveStorage::Service::S3Service\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003econfig.active_storage.touch_attachment_records\u003c/code\u003e to work with eager loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/58c1cf52979199dddead19f8caca7d5d9efdd120\"\u003e\u003ccode\u003e58c1cf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55655\"\u003e#55655\u003c/a\u003e from viralpraxis/fix-leftover-docs-references-to-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cc238e8a3eebb5f5f223a4c8ed757585b7d8d7e\"\u003e\u003ccode\u003e2cc238e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55552\"\u003e#55552\u003c/a\u003e from willnet/fix-broken-link-in-active-storage-vari...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/928391e83db900265d9ebc75d82a69f9490d9ea3\"\u003e\u003ccode\u003e928391e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55541\"\u003e#55541\u003c/a\u003e from joshuay03/fix-55525\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fea5b858955971fcd75dbd7579a5cac542632e63\"\u003e\u003ccode\u003efea5b85\u003c/code\u003e\u003c/a\u003e Move Representable#variant options doc to API docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/638673a0d3831316a8f4efcff52b71674606f785\"\u003e\u003ccode\u003e638673a\u003c/code\u003e\u003c/a\u003e Use h4 headings in method docs [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a36f6cc8a6491e141cd1ff0cc5eec2b91e4bca3e\"\u003e\u003ccode\u003ea36f6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55394\"\u003e#55394\u003c/a\u003e from cesariouy/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.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\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activesupport/CHANGELOG.md\"\u003eactivesupport's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#sole\u003c/code\u003e for infinite collections.\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/830363adf5a1d04204cd1567d6ac948abd05c430\"\u003e\u003ccode\u003e830363a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55688\"\u003e#55688\u003c/a\u003e from Shopify/drop-active-support-benchmar-extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c9a82e214046ec0daa06dc0b1718e948ccdc7c9a\"\u003e\u003ccode\u003ec9a82e2\u003c/code\u003e\u003c/a\u003e BigDecimal now works with floats without precision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae1aa389499547813879386d9bd22aa4402d9650\"\u003e\u003ccode\u003eae1aa38\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53093\"\u003e#53093\u003c/a\u003e from armstrjare/broadcast-logger-with-block\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `globalid` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/globalid/releases\"\u003eglobalid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet required ruby version to 2.7.0 and up by \u003ca href=\"https://github.com/risen\"\u003e\u003ccode\u003e@​risen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/169\"\u003erails/globalid#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep using URI RFC2396 parser by \u003ca href=\"https://github.com/voxik\"\u003e\u003ccode\u003e@​voxik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/192\"\u003erails/globalid#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eDEFAULT_LOCATOR\u003c/code\u003e Configurable by \u003ca href=\"https://github.com/heka1024\"\u003e\u003ccode\u003e@​heka1024\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/globalid/pull/179\"\u003erails/globalid#179\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://...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-court-data-ui/pull/3093","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-court-data-ui/issues/3093","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3093/packages"}},{"old_version":"8.0.2","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-23T22:05:33.000Z","version_change":"8.0.2 → 8.0.3","issue":{"uuid":"2854658727","node_id":"PR_kwDOAmyAE86qJqKn","number":940,"state":"open","title":"build(deps): bump actioncable from 8.0.2 to 8.0.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T22:05:33.000Z","updated_at":"2025-09-23T22:05:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"actioncable","old_version":"8.0.2","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.2 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRails 8.0.2.1 (August 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b0c813bc7b61c71dd21ee3a6c6210f6d14030f71\"\u003e\u003ccode\u003eb0c813b\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2...v8.0.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.2\u0026new-version=8.0.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/codacy/codacy-rubocop/pull/940","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/codacy%2Fcodacy-rubocop/issues/940","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/940/packages"}},{"old_version":"8.0.2.1","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-23T20:09:06.000Z","version_change":"8.0.2.1 → 8.0.3","issue":{"uuid":"2854426695","node_id":"PR_kwDOCJQbzs6qIxhH","number":8049,"state":"open","title":"build(deps): bump the bundler group with 25 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T20:09:06.000Z","updated_at":"2025-09-24T06:26:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler","update_count":25,"packages":[{"name":"oauth","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/ruby-oauth/oauth"},{"name":"puma","old_version":"7.0.3","new_version":"7.0.4","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-ruby","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.0","new_version":"5.27.1","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"propshaft","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/rails/propshaft"},{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailbox","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionmailer","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionpack","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actiontext","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activejob","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activemodel","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activerecord","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"aws-partitions","old_version":"1.1161.0","new_version":"1.1164.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-core","old_version":"3.232.0","new_version":"3.233.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"better_html","old_version":"2.1.1","new_version":"2.2.0","repository_url":"https://github.com/Shopify/better-html"},{"name":"json","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/ruby/json"},{"name":"oauth-tty","old_version":"1.0.5","new_version":"1.0.6","repository_url":"https://github.com/ruby-oauth/oauth-tty"},{"name":"railties","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"},{"name":"redis-client","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/redis-rb/redis-client"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 25 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [oauth](https://github.com/ruby-oauth/oauth) | `1.1.0` | `1.1.2` |\n| [puma](https://github.com/puma/puma) | `7.0.3` | `7.0.4` |\n| [rails](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.0` | `5.27.1` |\n| [propshaft](https://github.com/rails/propshaft) | `1.2.1` | `1.3.0` |\n| [actioncable](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailbox](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionmailer](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionpack](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actiontext](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [actionview](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activejob](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activemodel](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activerecord](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activestorage](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [activesupport](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [aws-partitions](https://github.com/aws/aws-sdk-ruby) | `1.1161.0` | `1.1164.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.232.0` | `3.233.0` |\n| [better_html](https://github.com/Shopify/better-html) | `2.1.1` | `2.2.0` |\n| [json](https://github.com/ruby/json) | `2.14.0` | `2.15.0` |\n| [oauth-tty](https://github.com/ruby-oauth/oauth-tty) | `1.0.5` | `1.0.6` |\n| [railties](https://github.com/rails/rails) | `8.0.2.1` | `8.0.3` |\n| [redis-client](https://github.com/redis-rb/redis-client) | `0.25.3` | `0.26.0` |\n\nUpdates `oauth` from 1.1.0 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth/releases\"\u003eoauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/compare/v1.1.1...v1.1.2\"\u003e1.1.2\u003c/a\u003e - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth/releases/tag/v1.1.2\"\u003ev1.1.2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.78% -- 817/999 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\u003c/li\u003e\n\u003cli\u003e40.71% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrected SHA-256 \u0026amp; SHA-512 checksums for release 1.1.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOfficial Discord 👉️ \u003ca href=\"https://discord.gg/3qme4XHNKN\"\u003e\u003cimg src=\"https://img.shields.io/discord/1373797679469170758?style=flat\" alt=\"Live Chat on Discord\" /\u003e\u003c/a\u003e\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 \u003ca href=\"https://www.paypal.com/paypalme/peterboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat\u0026amp;logo=paypal\" alt=\"Donate on PayPal\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.buymeacoffee.com/pboling\"\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\u003c/a\u003e \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 or refugee 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 or refugee efforts using Patreon\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003e[1.1.1] - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v1.1.1][1.1.1t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.70% -- 817/1000 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\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/ruby-oauth/oauth/blob/main/CHANGELOG.md\"\u003eoauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.2] - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v1.1.2][1.1.2t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.78% -- 817/999 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\u003c/li\u003e\n\u003cli\u003e40.71% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrected SHA-256 \u0026amp; SHA-512 checksums for release 1.1.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v1.1.1][1.1.1t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 81.70% -- 817/1000 lines in 36 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 50.54% -- 140/277 branches in 36 files\u003c/li\u003e\n\u003cli\u003e40.71% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ekettle-dev v1.1.18\u003c/li\u003e\n\u003cli\u003eInternal escape \u0026amp; unescape methods\n\u003cul\u003e\n\u003cli\u003eStop relying on URI / CGI for escaping and unescaping\u003c/li\u003e\n\u003cli\u003eThey are both unstable across supported versions of Ruby (including 3.5 HEAD)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTests against Rails-specific code are now run in CI\u003c/li\u003e\n\u003cli\u003eDocumented OAuth 1.0, 1.0a differences\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003econverted minitest =\u0026gt; rspec\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edependency on em-http-request\n\u003cul\u003e\n\u003cli\u003enow lazy Loaded so it can be optional, since some systems fail to install it, and it doesn't seem maintained\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/oauth/commit/1f6d6026de2c45936537cfe743846448bd46b4ab\"\u003e\u003ccode\u003e1f6d602\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v1.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/fe4b9f55613979811e55b496382349db354c90ba\"\u003e\u003ccode\u003efe4b9f5\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v1.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/9c07742a8ecfcd357360fd0c0b5d8bfc5c1b2013\"\u003e\u003ccode\u003e9c07742\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/1b7901bc8a18e80b5108efb60662164612702df1\"\u003e\u003ccode\u003e1b7901b\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/499a738059b60a90485c5aeafb7b1e28995343d4\"\u003e\u003ccode\u003e499a738\u003c/code\u003e\u003c/a\u003e 🔒️ New cert expires 2045-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/b7498bcd4c38a7123b0ec06adaf0717d890e8875\"\u003e\u003ccode\u003eb7498bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth/issues/339\"\u003e#339\u003c/a\u003e from ruby-oauth/feat/release-prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/9e9d646eb371c40458a853f94002f76087ad8cd8\"\u003e\u003ccode\u003e9e9d646\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/f7b84b7e5a9ef6c4d4fd6fb33597f639dc1207cf\"\u003e\u003ccode\u003ef7b84b7\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/dedd093bdd1764a1c7e4eb6be25ff882aea3a56b\"\u003e\u003ccode\u003ededd093\u003c/code\u003e\u003c/a\u003e 📝 Update license years\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth/commit/3d985f0108313776bdc28905b741a659caea326e\"\u003e\u003ccode\u003e3d985f0\u003c/code\u003e\u003c/a\u003e 🔥 remove post-install message\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth/compare/v1.1.0...v1.1.2\"\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.3 to 7.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/master/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.4 / 2025-09-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\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\u003epuma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3740\"\u003e#3740\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/puma/puma/commit/a4c451c142a93ffb33af4a643b1e065341d9ad3a\"\u003e\u003ccode\u003ea4c451c\u003c/code\u003e\u003c/a\u003e v7.0.4 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3769\"\u003e#3769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/474f4ac87b3a49884080f6611636eff2e6e61cee\"\u003e\u003ccode\u003e474f4ac\u003c/code\u003e\u003c/a\u003e Remove global side effect from test (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/30e0d2254043f0ef8b586f23bc5f06a59a45c219\"\u003e\u003ccode\u003e30e0d22\u003c/code\u003e\u003c/a\u003e Add test/rackup/sleep_fibonacci.ru, update benchmark hey files (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3758\"\u003e#3758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/4cd1199e1c1ad40af350f70e57ce3703e0d72e8c\"\u003e\u003ccode\u003e4cd1199\u003c/code\u003e\u003c/a\u003e ci: test_puma_server_ssl.rb - catch error in thread (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3760\"\u003e#3760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/684b715026d8e0a239274f4433294e5cd8b1ad0c\"\u003e\u003ccode\u003e684b715\u003c/code\u003e\u003c/a\u003e Fix SSL_shutdown error handling (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3703\"\u003e#3703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7e0d127b93a7d7bea0c1ecf3c7c88012d1a0baea\"\u003e\u003ccode\u003e7e0d127\u003c/code\u003e\u003c/a\u003e Strip whitespace from the beginnings of request header values. (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3742\"\u003e#3742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b817da4305a7a429e8e63d4f4a9b52d2a95fdc3e\"\u003e\u003ccode\u003eb817da4\u003c/code\u003e\u003c/a\u003e puma_http11.c: Use interned UTF-8 strings for hash keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3754\"\u003e#3754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/943d9c7bc3f916039ef918608a21030858b4333c\"\u003e\u003ccode\u003e943d9c7\u003c/code\u003e\u003c/a\u003e Move sleep cluster logic to its own class (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7aadde56fb2507dc0aab36649bc808a90c626e05\"\u003e\u003ccode\u003e7aadde5\u003c/code\u003e\u003c/a\u003e ci: helper.rb - catch error writing to \u003ccode\u003eENV['GITHUB_STEP_SUMMARY']\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/48ffd34a8e56ef5dce1471f75b98a094874ac953\"\u003e\u003ccode\u003e48ffd34\u003c/code\u003e\u003c/a\u003e Fixup benchmark scripts (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3753\"\u003e#3753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.3...v7.0.4\"\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.2.1 to 8.0.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.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/030f68cb32c6ff05f7922040ad6bde3dd902f977\"\u003e\u003ccode\u003e030f68c\u003c/code\u003e\u003c/a\u003e Remove lock for rdoc gem in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0ff0d09392c6958128a1ed23ce589e0b894fc0e5\"\u003e\u003ccode\u003e0ff0d09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55724\"\u003e#55724\u003c/a\u003e from fatkodima/preserve-locale-eml-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/78fe9657694027506c00b85d7487c43f2c1b39cf\"\u003e\u003ccode\u003e78fe965\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55710\"\u003e#55710\u003c/a\u003e from Shopify/grodowski/file-update-checker-time-tra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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.0 to 5.27.1\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\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 5.27.0 to 5.27.1\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-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/239a161e69deeb3835f838282b7e45d3063e88ef\"\u003e\u003ccode\u003e239a161\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esentry.origin\u003c/code\u003e to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/21d4d57815a4e5f5b2b4a3b7aa296a21bddee62a\"\u003e\u003ccode\u003e21d4d57\u003c/code\u003e\u003c/a\u003e 2696 Respect log_level (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1da1c2db805ea15fb68dd667774b14a36df1009c\"\u003e\u003ccode\u003e1da1c2d\u003c/code\u003e\u003c/a\u003e Skip sentry.message.template when there are no parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sidekiq` from 5.27.0 to 5.27.1\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-sidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.27.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for \u003ccode\u003e:origin\u003c/code\u003e attribute in log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip including \u003ccode\u003esentry.message.template\u003c/code\u003e in the log event attributes if there are no interpolation parameters provided (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003elog_level\u003c/code\u003e when logging via \u003ccode\u003e:std_lib_logger\u003c/code\u003e patch (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esentry.origin\u003c/code\u003e attribute to log events (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2712\"\u003e#2712\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/getsentry/sentry-ruby/commit/7d99a86259ef13c943c39da760804211fb9575e4\"\u003e\u003ccode\u003e7d99a86\u003c/code\u003e\u003c/a\u003e release: 5.27.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/5.27.0...5.27.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTurn Propshaft::Server into a proper middleware by \u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/249\"\u003erails/propshaft#249\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/propshaft/compare/v1.2.1...v1.3.0\"\u003ehttps://github.com/rails/propshaft/compare/v1.2.1...v1.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/rails/propshaft/commit/8ebcd4573653d503167f3c8a1e375fc9ffa0407c\"\u003e\u003ccode\u003e8ebcd45\u003c/code\u003e\u003c/a\u003e Prepare for 1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/84d9a558f78de177914d2772c9b90f671d85833f\"\u003e\u003ccode\u003e84d9a55\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/249\"\u003e#249\u003c/a\u003e from byroot/rack-server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/b38964096a2f5238b64a80f992a72daf95704322\"\u003e\u003ccode\u003eb389640\u003c/code\u003e\u003c/a\u003e Turn Propshaft::Server into a proper middleware\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.2.1...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actioncable` from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailbox` from 8.0.2.1 to 8.0.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\"\u003eactionmailbox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailbox/CHANGELOG.md\"\u003eactionmailbox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5308e753c69a15bad58892d83dd98302cb766beb\"\u003e\u003ccode\u003e5308e75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/53383\"\u003e#53383\u003c/a\u003e from Earlopain/rack-3.2-deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionmailer` from 8.0.2.1 to 8.0.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\"\u003eactionmailer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionmailer/CHANGELOG.md\"\u003eactionmailer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\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/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionpack` from 8.0.2.1 to 8.0.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\"\u003eactionpack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionpack/CHANGELOG.md\"\u003eactionpack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eURL helpers for engines mounted at the application root handle \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e correctly.\u003c/p\u003e\n\u003cp\u003eFixed an issue where \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e is not applied to paths generated for routes in an engine\nmounted at \u0026quot;/\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMike Dalessio\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e from clearing almost all routes.\u003c/p\u003e\n\u003cp\u003eWhen calling \u003ccode\u003eRails.application.reload_routes!\u003c/code\u003e inside a middleware of\na Rake task, it was possible under certain conditions that all routes would be cleared.\nIf ran inside a middleware, this would result in getting a 404 on most page you visit.\nThis issue was only happening in development.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEdouard Chin\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAddress \u003ccode\u003erack 3.2\u003c/code\u003e deprecations warnings.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewarning: Status code :unprocessable_entity is deprecated and will be removed in a future version of Rack.\nPlease use :unprocessable_content instead.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRails API will transparently convert one into the other for the foreseeable future.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport hash-source in Content Security Policy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003emadogiwa\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways return empty body for HEAD requests in \u003ccode\u003ePublicExceptions\u003c/code\u003e and\n\u003ccode\u003eDebugExceptions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis is required by \u003ccode\u003eRack::Lint\u003c/code\u003e (per RFC9110).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/847072c4f1276c069925e09391ad0cd3008b0d86\"\u003e\u003ccode\u003e847072c\u003c/code\u003e\u003c/a\u003e Fix TransitionTable#as_json compatibility with json 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a195ea9b4cb1997b3a01c53c0783ee05d4e514e8\"\u003e\u003ccode\u003ea195ea9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSCRIPT_NAME\u003c/code\u003e handling in URL helpers for root-mounted engines (\u003ca href=\"https://redirect.github.com/rails/rails/issues/55668\"\u003e#55668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/13123c4f097fba9f173ab069d487ecc5b7f4ff69\"\u003e\u003ccode\u003e13123c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54306\"\u003e#54306\u003c/a\u003e from Edouard-chin/ec-routes-reloading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d6a8692215f611a419d5c28f6e03691c82a0a789\"\u003e\u003ccode\u003ed6a8692\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54207\"\u003e#54207\u003c/a\u003e from madogiwa0124/support-csp-hash-source\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f495b6e19d01ece09b3293e3079ce375e8cc1002\"\u003e\u003ccode\u003ef495b6e\u003c/code\u003e\u003c/a\u003e Format example as code instead of ASCII table [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actiontext` from 8.0.2.1 to 8.0.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\"\u003eactiontext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actiontext/CHANGELOG.md\"\u003eactiontext's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rollup-plugin-terser as a dev dependency.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eÉdouard Chin\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91d803cc53d3078149639fc7498b8651396e4bbc\"\u003e\u003ccode\u003e91d803c\u003c/code\u003e\u003c/a\u003e Remove RDoc artifacts [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/144c9657952210a23cf78a3cc4f17b8eb8051683\"\u003e\u003ccode\u003e144c965\u003c/code\u003e\u003c/a\u003e Fix RDoc links for ActionText::RichText#embeds [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4aefa9c80ddfa05fa645b0470f7971cedf1ce6e\"\u003e\u003ccode\u003ee4aefa9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54798\"\u003e#54798\u003c/a\u003e from Edouard-chin/ec-actiontext-rollup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ec3115505bd1ea62fdc0f81057ecbb11f94830c\"\u003e\u003ccode\u003e2ec3115\u003c/code\u003e\u003c/a\u003e Fix CHANGELOG\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.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\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actionview/CHANGELOG.md\"\u003eactionview's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix label with \u003ccode\u003efor\u003c/code\u003e option not getting prefixed by form \u003ccode\u003enamespace\u003c/code\u003e value\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAbeid Ahmed\u003c/em\u003e, \u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ejavascript_include_tag\u003c/code\u003e \u003ccode\u003etype\u003c/code\u003e option to accept either strings and symbols.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003ejavascript_include_tag \u0026quot;application\u0026quot;, type: :module\njavascript_include_tag \u0026quot;application\u0026quot;, type: \u0026quot;module\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePreviously, only the string value was recognized.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eexcerpt\u003c/code\u003e helper with non-whitespace separator.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Hefner\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6409b24dd20ee4076ec3dbefba9edc3376bf13f1\"\u003e\u003ccode\u003e6409b24\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55719\"\u003e#55719\u003c/a\u003e from skipkayhil/hm-fix-label-for-namespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6394bfbfcea64b104b4167701aa55a783a6c730a\"\u003e\u003ccode\u003e6394bfb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55725\"\u003e#55725\u003c/a\u003e from byroot/js-include-type-module-sym\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/93fcfc12e0ac23593dd3b8a2ec247ec3c2f3545c\"\u003e\u003ccode\u003e93fcfc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55587\"\u003e#55587\u003c/a\u003e from marcoroth/erubi-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4a441e933fc764eb7128a76a36d5024c1b3caada\"\u003e\u003ccode\u003e4a441e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55476\"\u003e#55476\u003c/a\u003e from jonathanhefner/excerpt-with-non-whitespace-sep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activejob` from 8.0.2.1 to 8.0.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\"\u003eactivejob's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activejob/CHANGELOG.md\"\u003eactivejob's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInclude the actual Active Job locale when serializing rather than I18n locale.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAdrien S\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eretry_job\u003c/code\u003e instrumentation when using \u003ccode\u003e:test\u003c/code\u003e adapter for Active Job.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/52432156016361d7636487586dc6360bf49e8db3\"\u003e\u003ccode\u003e5243215\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55682\"\u003e#55682\u003c/a\u003e from npezza93/bug-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fd6ae05dc80496740e8ff839bad14d24e6d5882e\"\u003e\u003ccode\u003efd6ae05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55661\"\u003e#55661\u003c/a\u003e from npezza93/job-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ae73ec66f9d5a99815c66b26eb050716109dda6d\"\u003e\u003ccode\u003eae73ec6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55568\"\u003e#55568\u003c/a\u003e from zzak/sidekiq-issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e4049d3e84d4ce06a8bb49ce029f33dcd75a5f2d\"\u003e\u003ccode\u003ee4049d3\u003c/code\u003e\u003c/a\u003e Add missing punctuation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/69f3f88ab30fbeb312c0968313b5f097997870ba\"\u003e\u003ccode\u003e69f3f88\u003c/code\u003e\u003c/a\u003e Fully qualify ActiveJob::Arguments for auto-link [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/91e927f00cd920e34bc844d33e6a99bbeee5beeb\"\u003e\u003ccode\u003e91e927f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55444\"\u003e#55444\u003c/a\u003e from fatkodima/remove-perform_all_later-from-config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activemodel` from 8.0.2.1 to 8.0.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\"\u003eactivemodel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activemodel/CHANGELOG.md\"\u003eactivemodel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ehas_secure_password\u003c/code\u003e to perform confirmation validation of the password even when blank.\u003c/p\u003e\n\u003cp\u003eThe validation was incorrectly skipped when the password only contained whitespace characters.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFabio Sangiovanni\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1cab75f5f05d20fb74be8fa35fba362b016277e3\"\u003e\u003ccode\u003e1cab75f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55677\"\u003e#55677\u003c/a\u003e from alexkuebo/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5a0c11ba6e8b4e41f11e99d6c37c3df2990525c\"\u003e\u003ccode\u003ef5a0c11\u003c/code\u003e\u003c/a\u003e Use comment for example return values [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/bbb624bbf34fa42381d391af7caf0cf5c18c8f6e\"\u003e\u003ccode\u003ebbb624b\u003c/code\u003e\u003c/a\u003e Link using rdoc-ref instead of rdoc-label [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb12148f72837b74ba63f3fba0b891b50e49f6bb\"\u003e\u003ccode\u003ecb12148\u003c/code\u003e\u003c/a\u003e Use headings for args documentation [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/739827f563b021d224a465b446ccb53598fcd38d\"\u003e\u003ccode\u003e739827f\u003c/code\u003e\u003c/a\u003e Improve Active Model changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2b971fde3baf7a51799670870eb14b34ca6bb21f\"\u003e\u003ccode\u003e2b971fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55232\"\u003e#55232\u003c/a\u003e from \u003ca href=\"https://redirect.github.com/callmesangio/fix-/issues/55225\"\u003ecallmesangio/fix-gh-55225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9f62452807a852f29d14fb395c5c441348e16b9e\"\u003e\u003ccode\u003e9f62452\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55085\"\u003e#55085\u003c/a\u003e from Earlopain/namespaced\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activerecord` from 8.0.2.1 to 8.0.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\"\u003eactiverecord's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/activerecord/CHANGELOG.md\"\u003eactiverecord's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix query cache for pinned connections in multi threaded transactional tests\u003c/p\u003e\n\u003cp\u003eWhen a pinned connection is used across separate threads, they now use a separate cache store\nfor each thread.\u003c/p\u003e\n\u003cp\u003eThis improve accuracy of system tests, and any test using multiple threads.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHeinrich Lee Yu\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't add \u003ccode\u003eid_value\u003c/code\u003e attribute alias when attribute/column with that name already exists.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRob Lewis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix false positive change detection involving STI and polymorphic has one relationships.\u003c/p\u003e\n\u003cp\u003ePolymorphic \u003ccode\u003ehas_one\u003c/code\u003e relationships would always be considered changed when defined in a STI child\nclass, causing nedless extra autosaves.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDavid Fritsch\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip calling \u003ccode\u003ePG::Connection#cancel\u003c/code\u003e in \u003ccode\u003ecancel_any_running_query\u003c/code\u003e\nwhen using libpq \u0026gt;= 18 with pg \u0026lt; 1.6.0, due to incompatibility.\nRollback still runs, but may take longer.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYasuo Honda\u003c/em\u003e, \u003cem\u003eLars Kanis\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale association detection for polymorphic \u003ccode\u003ebelongs_to\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFlorent Beaurain\u003c/em\u003e, \u003cem\u003eThomas Crambert\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix removal of PostgreSQL version comments in \u003ccode\u003estructure.sql\u003c/code\u003e for latest PostgreSQL versions which include \u003ccode\u003e\\restrict\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eBrendan Weibrecht\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow setting \u003ccode\u003eschema_format\u003c/code\u003e in database configuration.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eprimary:\n  schema_format: ruby\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUseful in multi-database setups to have different formats per-database.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eT S Vallender\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ntuples to populate row_count instead of count for Postgres\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJonathan Calvert\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/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/74038d7f15a8f9e5b3d38a730a4b67da14697daa\"\u003e\u003ccode\u003e74038d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55722\"\u003e#55722\u003c/a\u003e from kozy4324/fix-lease-sticky-flag-timing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/4fc9618c6116476bcb4818624abb27bedc488cd3\"\u003e\u003ccode\u003e4fc9618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55703\"\u003e#55703\u003c/a\u003e from byroot/hly-fix-query-cache-system-tests-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20c7cffa5c6412e324e363393c5a477657f98162\"\u003e\u003ccode\u003e20c7cff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55699\"\u003e#55699\u003c/a\u003e from skipkayhil/hm-zlxzqwylrmlruzuq\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8408ba67e8eb81557af11e515b8a10ab4f745552\"\u003e\u003ccode\u003e8408ba6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55698\"\u003e#55698\u003c/a\u003e from salzig/fix/respect_schema_format_in_db_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e7f65a941ac3b7f193e234377e48718a86843caa\"\u003e\u003ccode\u003ee7f65a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55691\"\u003e#55691\u003c/a\u003e from kohder/rl-id-value-alias-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/228fcf56524fd380925277793c43636c226accf2\"\u003e\u003ccode\u003e228fcf5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/51359\"\u003e#51359\u003c/a\u003e from dfritsch/dfritsch/51280-polymorphic-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/54569418077b68f2f0df27c15514ebd59748c625\"\u003e\u003ccode\u003e5456941\u003c/code\u003e\u003c/a\u003e Return early when column are empty in WhereClause#except_predicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/87e495d0349869e05e1ec3736f93ca3b126d6a17\"\u003e\u003ccode\u003e87e495d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55675\"\u003e#55675\u003c/a\u003e from skipkayhil/hm-ouuplulxpznztlyp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.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\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like o...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-apply-for-legal-aid/pull/8049","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-apply-for-legal-aid/issues/8049","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8049/packages"}},{"old_version":"8.0.2.1","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-23T20:01:28.000Z","version_change":"8.0.2.1 → 8.0.3","issue":{"uuid":"2854411267","node_id":"PR_kwDOBoDlBs6qItwD","number":1424,"state":"open","title":"build(deps): bump actioncable from 8.0.2.1 to 8.0.3","user":"dependabot[bot]","labels":["dependencies","ruby","automerge"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T20:01:28.000Z","updated_at":"2025-09-23T20:01:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.2.1\u0026new-version=8.0.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/steiley/sliar/pull/1424","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/steiley%2Fsliar/issues/1424","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1424/packages"}},{"old_version":"8.0.2.1","new_version":"8.0.3","update_type":"patch","path":null,"pr_created_at":"2025-09-23T20:01:20.000Z","version_change":"8.0.2.1 → 8.0.3","issue":{"uuid":"2854410991","node_id":"PR_kwDOCRCuO86qItrv","number":2602,"state":"closed","title":"chore(deps): bump actioncable from 8.0.2.1 to 8.0.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-24T13:53:58.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-23T20:01:20.000Z","updated_at":"2025-09-24T13:53:58.000Z","time_to_close":64358,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"actioncable","old_version":"8.0.2.1","new_version":"8.0.3","repository_url":"https://github.com/rails/rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [actioncable](https://github.com/rails/rails) from 8.0.2.1 to 8.0.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\"\u003eactioncable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eActiveSupport::FileUpdateChecker\u003c/code\u003e does not depend on \u003ccode\u003eTime.now\u003c/code\u003e to prevent unnecessary reloads with time travel test helpers\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJan Grodowski\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::BroadcastLogger\u003c/code\u003e from executing a block argument for each logger (tagged, info, etc.).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::Logger\u003c/code\u003e \u003ccode\u003e#freeze\u003c/code\u003e-friendly.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoshua Young\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#transform_keys!\u003c/code\u003e removing defaults.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHartley McGuire\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::HashWithIndifferentAccess#tranform_keys!\u003c/code\u003e to handle collisions.\u003c/p\u003e\n\u003cp\u003eIf the transformation would result in a key equal to another not yet transformed one,\nit would result in keys being lost.\u003c/p\u003e\n\u003cp\u003eBefore:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e\u0026gt;\u0026gt; {a: 1, b: 2}.with_indifferent_access.transform_keys!(\u0026amp;:succ)\n=\u0026gt; {\u0026quot;c\u0026quot; =\u0026gt; 1, \u0026quot;d\u0026quot; =\u0026gt; 2}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJason T Johnson\u003c/em\u003e, \u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::MemCacheStore#read_multi\u003c/code\u003e to handle network errors.\u003c/p\u003e\n\u003cp\u003eThis method specifically wasn't handling network errors like other codepaths.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAlessandro Dal Grande\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix configuring \u003ccode\u003eRedisCacheStore\u003c/code\u003e with \u003ccode\u003eraw: true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003efatkodima\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/blob/v8.0.3/actioncable/CHANGELOG.md\"\u003eactioncable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRails 8.0.3 (September 22, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with \u003ccode\u003eredis\u003c/code\u003e gem \u003ccode\u003e5.4.1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJean Boussier\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a possible race condition in \u003ccode\u003estream_from\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eOuYangJinTing\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/rails/rails/commit/529f933fc8b13114d308dd0752f76a9e293c8537\"\u003e\u003ccode\u003e529f933\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0160f42886e2ebeb7a0680f073b870326f14c12a\"\u003e\u003ccode\u003e0160f42\u003c/code\u003e\u003c/a\u003e Sync CHANGELOGs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5eb4c3d2fabd84954eddccca9ddc437f41a27ebc\"\u003e\u003ccode\u003e5eb4c3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/54031\"\u003e#54031\u003c/a\u003e from bai/bun-lockfile-txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/b2ad4179f8b36e39d6eafe29d7e42b1199707069\"\u003e\u003ccode\u003eb2ad417\u003c/code\u003e\u003c/a\u003e Merge security patches in 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5f3b209016e0abb738d26accb6d97861f239fd63\"\u003e\u003ccode\u003e5f3b209\u003c/code\u003e\u003c/a\u003e Replace \u0026quot;mailing list\u0026quot; with \u0026quot;forum\u0026quot; [ci-skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e0278f5728a2c3f5666c3565ee195e43ffc86dec\"\u003e\u003ccode\u003ee0278f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55359\"\u003e#55359\u003c/a\u003e from byroot/actioncable-redis-5.4.1-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/cb04cf583a5390bf87834be69bc096a3b48c3af3\"\u003e\u003ccode\u003ecb04cf5\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/11493e8126e964cb7480c64adff3be92cabbc0eb\"\u003e\u003ccode\u003e11493e8\u003c/code\u003e\u003c/a\u003e Fix changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f5b8826cd03edbaf4a0a7bb40323c0de2e6cda91\"\u003e\u003ccode\u003ef5b8826\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55201\"\u003e#55201\u003c/a\u003e from OuYangJinTing/fix/actioncable/channel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44e016ec2290e16e4f53814c522d37dafe8119ce\"\u003e\u003ccode\u003e44e016e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/55013\"\u003e#55013\u003c/a\u003e from yahonda/update_safari_at_saucelabs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.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=actioncable\u0026package-manager=bundler\u0026previous-version=8.0.2.1\u0026new-version=8.0.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mishina2228/youtube-api-trial/pull/2602","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mishina2228%2Fyoutube-api-trial/issues/2602","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2602/packages"}}]}