Skip to content

deps(deps): bump the bundler-minor-patch group across 1 directory with 4 updates - #29

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/bundler-minor-patch-ab4919a1bd
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/bundler-minor-patch-ab4919a1bd

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 12, 2026

Copy link
Copy Markdown
Contributor

Bumps the bundler-minor-patch group with 4 updates in the / directory: rubocop, simplecov, pg and railties.

Updates rubocop from 1.90.0 to 1.91.0

Release notes

Sourced from rubocop's releases.

RuboCop v1.91.0

New features

  • #15631: Add a preview channel for unstable behavior. (@​bbatsov)
  • #15627: Add a SARIF formatter. (@​bbatsov)
  • #15686: Add AllCops: FailLevel, the configuration equivalent of --fail-level. (@​bbatsov)
  • #15650: Add AllowedDirectives option to Style/DisableCopsWithinSourceCodeDirective, exempting directive kinds such as generated rubocop:todo comments. (@​bbatsov)
  • #15629: Add --changed to inspect only the files git says changed. (@​bbatsov)
  • #15628: Add --diff to preview autocorrection without writing files. (@​bbatsov)
  • #15615: Add new Lint/MisplacedMagicComment cop to flag magic comments in positions where Ruby ignores them. (@​bbatsov)
  • #15600: Add the rubocop:enable-next directive to re-enable cops for the next statement only. (@​bbatsov)
  • #15600: Add the rubocop:next directive, combining push-style +/- arguments with disable-next's statement scope. (@​bbatsov)
  • #15363: Let a cop's entry in the default configuration carry a Preview section with the defaults it is expected to adopt in the next major release, applied under Preview. (@​bbatsov)

Bug fixes

  • #15349: Fix a false positive for Style/RedundantRegexpCharacterClass with \8/\9. (@​bbatsov)
  • #15646: Fix an error for Layout/ElseAlignment when else is used with rescue in a class, module, or singleton class body. (@​viralpraxis)
  • #15613: Fix an error for Layout/HashAlignment when a hash value starts on the line below its key. (@​viralpraxis)
  • #15623: Fix an error for Layout/HashAlignment when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. (@​viralpraxis)
  • #15602: Fix an error for Layout/IndentationWidth on under-indented code with tab indentation. (@​Starlexxx)
  • #15672: Fix an error for Lint/RedundantCopDisableDirective when a file contains more than one rubocop:push/rubocop:pop pair. (@​koic)
  • #15625: Fix an error for Style/AccessModifierDeclarations when a body repeats the same access modifier. (@​viralpraxis)
  • #15603: Fix an error for Style/AccessModifierDeclarations with EnforcedStyle: inline when an access modifier is the body of an if without an else branch. (@​viralpraxis)
  • #15604: Fix an error for Style/ConstantVisibility when a visibility declaration splats anything other than an array literal, e.g. private_constant(*constants(false)). (@​viralpraxis)
  • #15647: Fix an error for Style/DocumentationMethod when an inline module_function/ruby2_keywords def is preceded by another argument. (@​viralpraxis)
  • #15680: Fix an error for Style/EndlessMethod when a method definition is nested inside another method definition. (@​viralpraxis)
  • #15674: Fix an error for Style/FloatDivision when using EnforcedStyle: fdiv and one operand of a float division is itself a parenthesized float division. (@​viralpraxis)
  • #15624: Fix an error for Style/HashLookupMethod when the looked-up key is itself a hash lookup. (@​viralpraxis)
  • #15642: Fix an error for Style/HashSyntax when hash rockets are enforced and a hash value repeats its key. (@​viralpraxis)
  • #15634: Fix an incorrect autocorrect for Lint/LiteralAsCondition when the other operand is a parenthesized return. (@​Starlexxx)
  • #15648: Fix an incorrect autocorrect for Lint/ParenthesesAsGroupedExpression when the parentheses contain and, or, not, or a modifier expression. (@​Starlexxx)
  • #15612: Fix an incorrect autocorrect for Naming/BlockForwarding with Style/MethodDefParentheses. (@​Starlexxx)
  • #15680: Fix an incorrect autocorrect for Style/EndlessMethod when using EnforcedStyle: require_always and the method body has a rescue or ensure clause. (@​viralpraxis)
  • #15669: Fix an incorrect autocorrect for Style/FloatDivision when using EnforcedStyle: fdiv and the divisor is a method call with parenthesized arguments. (@​viralpraxis)
  • #15678: Fix an incorrect autocorrect for Style/For when using EnforcedStyle: for and the block body has a rescue or ensure clause. (@​viralpraxis)
  • #15645: Fix an incorrect autocorrect for Style/GuardClause with Style/MissingElse. (@​Starlexxx)
  • #15668: Fix an incorrect autocorrect for Style/MethodCallWithArgsParentheses when EnforcedStyle: omit_parentheses is used together with Style/TrailingCommaInArguments. (@​viralpraxis)
  • #15347: Fix an incorrect autocorrect for Style/NestedModifier. (@​bbatsov)
  • #15347: Fix an incorrect autocorrect for Style/NonNilCheck. (@​bbatsov)
  • #15347: Fix an incorrect autocorrect for Style/Not with a flip-flop or assignment. (@​bbatsov)
  • #15349: Fix an incorrect autocorrect for Style/RedundantDoubleSplatHashBraces with a braced merge argument. (@​bbatsov)
  • #15349: Fix an incorrect autocorrect for Style/RedundantParentheses around and/or. (@​bbatsov)
  • #15349: Fix an incorrect autocorrect for Style/RedundantRegexpConstructor with %r{} delimiters. (@​bbatsov)
  • #15614: Fix an infinite loop between Layout/ArgumentAlignment and Layout/HashAlignment with separator style. (@​Starlexxx)
  • #15599: Fix an infinite loop error for Layout/CommentIndentation when many comment blocks with the same indentation are separated by empty lines. (@​Starlexxx)
  • #15597: Fix an infinite loop error for Layout/EmptyLinesAfterModuleInclusion when a module inclusion is directly before rescue. (@​Starlexxx)
  • #15617: Fix an infinite loop between Layout/ExtraSpacing with ForceEqualSignAlignment and Layout/SpaceAroundOperators. (@​Starlexxx)
  • #15638: Fix an infinite loop error for Layout/FirstArrayElementIndentation with Layout/ArrayAlignment when EnforcedStyle: with_fixed_indentation is configured. (@​RedZapdos123)
  • #15639: Fix an infinite loop error for Layout/FirstParameterIndentation with Layout/ParameterAlignment when EnforcedStyle: with_fixed_indentation is configured. (@​RedZapdos123)

... (truncated)

Changelog

Sourced from rubocop's changelog.

1.91.0 (2026-09-10)

New features

  • #15631: Add a preview channel for unstable behavior. ([@​bbatsov][])
  • #15627: Add a SARIF formatter. ([@​bbatsov][])
  • #15686: Add AllCops: FailLevel, the configuration equivalent of --fail-level. ([@​bbatsov][])
  • #15650: Add AllowedDirectives option to Style/DisableCopsWithinSourceCodeDirective, exempting directive kinds such as generated rubocop:todo comments. ([@​bbatsov][])
  • #15629: Add --changed to inspect only the files git says changed. ([@​bbatsov][])
  • #15628: Add --diff to preview autocorrection without writing files. ([@​bbatsov][])
  • #15615: Add new Lint/MisplacedMagicComment cop to flag magic comments in positions where Ruby ignores them. ([@​bbatsov][])
  • #15600: Add the rubocop:enable-next directive to re-enable cops for the next statement only. ([@​bbatsov][])
  • #15600: Add the rubocop:next directive, combining push-style +/- arguments with disable-next's statement scope. ([@​bbatsov][])
  • #15363: Let a cop's entry in the default configuration carry a Preview section with the defaults it is expected to adopt in the next major release, applied under Preview. ([@​bbatsov][])

Bug fixes

  • #15349: Fix a false positive for Style/RedundantRegexpCharacterClass with \8/\9. ([@​bbatsov][])
  • #15646: Fix an error for Layout/ElseAlignment when else is used with rescue in a class, module, or singleton class body. ([@​viralpraxis][])
  • #15613: Fix an error for Layout/HashAlignment when a hash value starts on the line below its key. ([@​viralpraxis][])
  • #15623: Fix an error for Layout/HashAlignment when the first pair of a hash omits its value, and an incorrect autocorrection when a later pair does. ([@​viralpraxis][])
  • #15602: Fix an error for Layout/IndentationWidth on under-indented code with tab indentation. ([@​Starlexxx][])
  • #15672: Fix an error for Lint/RedundantCopDisableDirective when a file contains more than one rubocop:push/rubocop:pop pair. ([@​koic][])
  • #15625: Fix an error for Style/AccessModifierDeclarations when a body repeats the same access modifier. ([@​viralpraxis][])
  • #15603: Fix an error for Style/AccessModifierDeclarations with EnforcedStyle: inline when an access modifier is the body of an if without an else branch. ([@​viralpraxis][])
  • #15604: Fix an error for Style/ConstantVisibility when a visibility declaration splats anything other than an array literal, e.g. private_constant(*constants(false)). ([@​viralpraxis][])
  • #15647: Fix an error for Style/DocumentationMethod when an inline module_function/ruby2_keywords def is preceded by another argument. ([@​viralpraxis][])
  • #15680: Fix an error for Style/EndlessMethod when a method definition is nested inside another method definition. ([@​viralpraxis][])
  • #15674: Fix an error for Style/FloatDivision when using EnforcedStyle: fdiv and one operand of a float division is itself a parenthesized float division. ([@​viralpraxis][])
  • #15624: Fix an error for Style/HashLookupMethod when the looked-up key is itself a hash lookup. ([@​viralpraxis][])
  • #15642: Fix an error for Style/HashSyntax when hash rockets are enforced and a hash value repeats its key. ([@​viralpraxis][])
  • #15634: Fix an incorrect autocorrect for Lint/LiteralAsCondition when the other operand is a parenthesized return. ([@​Starlexxx][])
  • #15648: Fix an incorrect autocorrect for Lint/ParenthesesAsGroupedExpression when the parentheses contain and, or, not, or a modifier expression. ([@​Starlexxx][])
  • #15612: Fix an incorrect autocorrect for Naming/BlockForwarding with Style/MethodDefParentheses. ([@​Starlexxx][])
  • #15680: Fix an incorrect autocorrect for Style/EndlessMethod when using EnforcedStyle: require_always and the method body has a rescue or ensure clause. ([@​viralpraxis][])
  • #15669: Fix an incorrect autocorrect for Style/FloatDivision when using EnforcedStyle: fdiv and the divisor is a method call with parenthesized arguments. ([@​viralpraxis][])
  • #15678: Fix an incorrect autocorrect for Style/For when using EnforcedStyle: for and the block body has a rescue or ensure clause. ([@​viralpraxis][])
  • #15645: Fix an incorrect autocorrect for Style/GuardClause with Style/MissingElse. ([@​Starlexxx][])
  • #15668: Fix an incorrect autocorrect for Style/MethodCallWithArgsParentheses when EnforcedStyle: omit_parentheses is used together with Style/TrailingCommaInArguments. ([@​viralpraxis][])
  • #15347: Fix an incorrect autocorrect for Style/NestedModifier. ([@​bbatsov][])
  • #15347: Fix an incorrect autocorrect for Style/NonNilCheck. ([@​bbatsov][])
  • #15347: Fix an incorrect autocorrect for Style/Not with a flip-flop or assignment. ([@​bbatsov][])
  • #15349: Fix an incorrect autocorrect for Style/RedundantDoubleSplatHashBraces with a braced merge argument. ([@​bbatsov][])
  • #15349: Fix an incorrect autocorrect for Style/RedundantParentheses around and/or. ([@​bbatsov][])
  • #15349: Fix an incorrect autocorrect for Style/RedundantRegexpConstructor with %r{} delimiters. ([@​bbatsov][])
  • #15614: Fix an infinite loop between Layout/ArgumentAlignment and Layout/HashAlignment with separator style. ([@​Starlexxx][])
  • #15599: Fix an infinite loop error for Layout/CommentIndentation when many comment blocks with the same indentation are separated by empty lines. ([@​Starlexxx][])
  • #15597: Fix an infinite loop error for Layout/EmptyLinesAfterModuleInclusion when a module inclusion is directly before rescue. ([@​Starlexxx][])
  • #15617: Fix an infinite loop between Layout/ExtraSpacing with ForceEqualSignAlignment and Layout/SpaceAroundOperators. ([@​Starlexxx][])
  • #15638: Fix an infinite loop error for Layout/FirstArrayElementIndentation with Layout/ArrayAlignment when EnforcedStyle: with_fixed_indentation is configured. ([@​RedZapdos123][])

... (truncated)

Commits
  • 6eee0af Cut 1.91
  • ed0572d Update Changelog
  • 3181272 Fix an infinite loop for Style/NumericLiteralPrefix with signed literals
  • b87652a Fix Layout/LineLength SplitStrings loop on trailing-space split point
  • fce7a33 [Fix #15638] Fix first array indentation loop
  • 321bd65 #15347 Fix an incorrect autocorrect for Style/NestedModifier
  • a464cba #15347 Fix incorrect autocorrects for Style/NilComparison with precedence...
  • 3192b70 #15347 Fix an incorrect autocorrect for Style/NonNilCheck
  • f747cab #15347 Fix an incorrect autocorrect for Style/Not with a flip-flop or ass...
  • 3f52020 Add CHANGELOG entry for the preview fail level
  • Additional commits viewable in compare view

Updates simplecov from 1.2.0 to 1.3.2

Release notes

Sourced from simplecov's releases.

v1.3.2

Bugfixes

  • The HTML report is generated again on Rails 8.1.4 when a parallelize_teardown hook calls SimpleCov.result. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops Coverage, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See simplecov-ruby/simplecov#1308.

v1.3.1

Bugfixes

  • cover_views compiles templates on Rails main again. Rails removed ActionView::Template.registered_template_handler; the lookup reads ActionView::Template::Handlers.template_handlers and still skips an extension with no handler. See simplecov-ruby/simplecov#1300.
  • require "simplecov" works again on JRuby on Windows, where 1.3.0 raised LoadError: Could not open library '.../libprism.dll'. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See simplecov-ruby/simplecov#1299.
  • simplecov affected --run works on JRuby on Windows, where it crashed with NoMethodError because Process.wait2 answers no status there. On that platform the runner starts through Kernel#system instead.
  • simplecov serve refuses a symlink that points outside the report on JRuby on Windows too. JRuby's File.realpath follows no symlinks there, so serve would have served the file the link pointed to, and simplecov clean and the coverage.json lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.

v1.3.0

SimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates, teaches simplecov patch and simplecov uncovered to annotate CI hosts natively, and settles what the report says about files and groups that hold nothing.

Highlights

  • Ruby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.
  • # simplecov:disable and # simplecov:enable work inside ERB, Haml, and Slim templates measured with cover_views, in each language's own comment syntax or as Ruby comments on a code line.
  • --annotate KIND turns simplecov patch and simplecov uncovered into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.
  • Groups that match no files are omitted from the report instead of padding it at 100%, and the rails profile declares its groups alphabetically.
  • cover_views is the only way to measure a template now: a cover glob that matches one warns and leaves it out, and ignore: :eval_generated no longer drops a template's real branches and methods.
  • A file with nothing to cover reports the same percentage in the file list as it does in the source view.

Upgrade notes

  • The minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.
  • A group that matched no files disappears from the HTML report, coverage.json, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.
  • The rails profile's group tabs come out in alphabetical order, so an existing project's tabs move.
  • A never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.
  • A cover glob matching .erb, .haml, or .slim warns and drops those files from the report. Measure templates with cover_views instead.
  • coverage.json stays at schema 1.3, unchanged by this release.

Breaking Changes

  • Dropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (required_ruby_version >= 3.3), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: StaticCoverageExtractor.available? and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.

Enhancements

  • # simplecov:disable and # simplecov:enable work inside ERB, Haml, and Slim templates measured with cover_views, in each language's own comment syntax (<%# simplecov:disable %>, -# simplecov:disable, / simplecov:disable) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB %> opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim - # simplecov:disable line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the confirmable link it never renders instead of carrying it as uncovered. See simplecov-ruby/simplecov#1295.
  • Groups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, coverage.json, and the history file all skip them, so the rails profile's Channels, Mailers, and Views tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (Dir["app/*"].each { |dir| group File.basename(dir).capitalize, dir }) without checking each one for Ruby files first. A minimum_coverage_by_group threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See simplecov-ruby/simplecov#1293.
  • The rails profile declares its groups in alphabetical order: Channels, Controllers, Helpers, Jobs, Libraries, Mailers, Models, Views. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.
  • simplecov patch and simplecov uncovered annotate CI hosts natively. --annotate KIND on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (patch adds one per uncovered touched branch or method when the report measured them): github emits ::warning workflow commands, gitlab a Code Quality report for the codequality artifact, rdjson reviewdog's Diagnostic Format for any host reviewdog posts to, azure ##vso[task.logissue] logging commands, teamcity code inspection service messages, and buildkite the Markdown body for buildkite-agent annotate. uncovered previously offered only github, and its annotations now name the chosen criterion the way patch's do. Nothing else reaches stdout in that mode and patch --minimum still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.

Bugfixes

  • A file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (simplecov-ruby/simplecov#902), from a time when simulation recorded no tuples for such a file and an empty set really did mean "nobody knows". Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See simplecov-ruby/simplecov#1296.
  • A cover glob that matches a template warns and leaves it out instead of simulating it. Simulation classifies lines as Ruby and parses for branches, so a swept-in template appeared with a comment counted as a missed line, an #id tag counted as never relevant, and no branches at all. The warning names the templates and points at cover_views, which compiles them and measures the real thing.
  • The deprecated # :nocov: toggle works in a template's own comment syntax (<%# :nocov: %>, -# :nocov:, / :nocov:) and emits its deprecation warning there. The matcher read raw lines and needed the line to begin with #, so those forms were silently ignored while the Ruby-comment form inside an ERB code tag happened to work. The matcher now reads the same extracted Ruby the directives do.
  • ignore: :eval_generated no longer drops a template's real branches and methods. The filter keeps a Coverage entry only when Prism finds a matching construct in the static source, which for a template measured with cover_views meant parsing ERB, Haml, or Slim as Ruby. That usually fails and the entry is kept, but a template whose text happens to parse (a Haml or Slim #id tag reads as a Ruby comment, and so does an ERB text line starting with #) yielded a confident wrong parse, and the template's own conditionals vanished from branch coverage. Templates now skip the parse, since everything a template reports is eval-generated by construction and the filter has nothing to distinguish there.
Changelog

Sourced from simplecov's changelog.

1.3.2 (2026-09-30)

Bugfixes

  • The HTML report is generated again on Rails 8.1.4 when a parallelize_teardown hook calls SimpleCov.result. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops Coverage, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See simplecov-ruby/simplecov#1308.

1.3.1 (2026-09-24)

Bugfixes

  • cover_views compiles templates on Rails main again. Rails removed ActionView::Template.registered_template_handler; the lookup reads ActionView::Template::Handlers.template_handlers and still skips an extension with no handler. See simplecov-ruby/simplecov#1300.
  • require "simplecov" works again on JRuby on Windows, where 1.3.0 raised LoadError: Could not open library '.../libprism.dll'. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See simplecov-ruby/simplecov#1299.
  • simplecov affected --run works on JRuby on Windows, where it crashed with NoMethodError because Process.wait2 answers no status there. On that platform the runner starts through Kernel#system instead.
  • simplecov serve refuses a symlink that points outside the report on JRuby on Windows too. JRuby's File.realpath follows no symlinks there, so serve would have served the file the link pointed to, and simplecov clean and the coverage.json lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.

1.3.0 (2026-09-12)

SimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates, teaches simplecov patch and simplecov uncovered to annotate CI hosts natively, and settles what the report says about files and groups that hold nothing.

Highlights

  • Ruby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.
  • # simplecov:disable and # simplecov:enable work inside ERB, Haml, and Slim templates measured with cover_views, in each language's own comment syntax or as Ruby comments on a code line.
  • --annotate KIND turns simplecov patch and simplecov uncovered into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.
  • Groups that match no files are omitted from the report instead of padding it at 100%, and the rails profile declares its groups alphabetically.
  • cover_views is the only way to measure a template now: a cover glob that matches one warns and leaves it out, and ignore: :eval_generated no longer drops a template's real branches and methods.
  • A file with nothing to cover reports the same percentage in the file list as it does in the source view.

Upgrade notes

  • The minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.
  • A group that matched no files disappears from the HTML report, coverage.json, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.
  • The rails profile's group tabs come out in alphabetical order, so an existing project's tabs move.
  • A never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.
  • A cover glob matching .erb, .haml, or .slim warns and drops those files from the report. Measure templates with cover_views instead.
  • coverage.json stays at schema 1.3, unchanged by this release.

Breaking Changes

  • Dropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (required_ruby_version >= 3.3), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: StaticCoverageExtractor.available? and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.

Enhancements

  • # simplecov:disable and # simplecov:enable work inside ERB, Haml, and Slim templates measured with cover_views, in each language's own comment syntax (<%# simplecov:disable %>, -# simplecov:disable, / simplecov:disable) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB %> opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim - # simplecov:disable line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the confirmable link it never renders instead of carrying it as uncovered. See simplecov-ruby/simplecov#1295.
  • Groups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, coverage.json, and the history file all skip them, so the rails profile's Channels, Mailers, and Views tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (Dir["app/*"].each { |dir| group File.basename(dir).capitalize, dir }) without checking each one for Ruby files first. A minimum_coverage_by_group threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See simplecov-ruby/simplecov#1293.
  • The rails profile declares its groups in alphabetical order: Channels, Controllers, Helpers, Jobs, Libraries, Mailers, Models, Views. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.
  • simplecov patch and simplecov uncovered annotate CI hosts natively. --annotate KIND on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (patch adds one per uncovered touched branch or method when the report measured them): github emits ::warning workflow commands, gitlab a Code Quality report for the codequality artifact, rdjson reviewdog's Diagnostic Format for any host reviewdog posts to, azure ##vso[task.logissue] logging commands, teamcity code inspection service messages, and buildkite the Markdown body for buildkite-agent annotate. uncovered previously offered only github, and its annotations now name the chosen criterion the way patch's do. Nothing else reaches stdout in that mode and patch --minimum still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.

Bugfixes

  • A file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (simplecov-ruby/simplecov#902), from a time when simulation recorded no tuples for such a file and an empty set really did mean "nobody knows". Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See simplecov-ruby/simplecov#1296.

... (truncated)

Commits
  • 52a8754 Bump version to 1.3.2
  • 4fb4ae1 Format a result collected before exit on Rails 8.1.4
  • 1476741 bundle update
  • 343a933 Stop leaking a flush thread in the forked-child production specs
  • e64fcaa Bump ruby/setup-ruby from 1.323.0 to 1.325.0
  • cb8bd83 Bump oxlint from 1.83.0 to 1.85.0 in /html_frontend
  • 4ee7894 Bump version to 1.3.1
  • 486e55e bundle update
  • d2a62a8 Resolve paths and wait on runners correctly on JRuby on Windows
  • 3a2e08e Load Prism only when the static extractor runs
  • Additional commits viewable in compare view

Updates pg from 1.6.3 to 1.7.0

Changelog

Sourced from pg's changelog.

v1.7.0 [2026-10-02] Lars Kanis lars@greiz-reinsdorf.de

Added:

  • Add PG::Connection#embed_params and keyword :typename for its parameter casting. #726 This allows to generate SQL strings with embedded parameters for easier debugging.
  • Add PG::Connection#full_protocol_version which is new in PostgreSQL-18 #695
  • Add PG::Result#each_tuple #675
  • Add PG::TypeMap#query_param_encoders to retrieve encoders. #726
  • Deduplicate result field name strings for better performance. #750

Removed:

  • Remove compatibility to ruby < 3.1 and drops support of ruby-2.7 and ruby-3.0. #749
  • Remove GLV unlocking at all functions which process data modifiable in a second thread. #721 This avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.
  • Remove :static_symbol result field names. #691
  • Remove enforced rpath addition when no rpath is configured in rbconfig. #699

Fixes:

  • Limit memory allocation on invalid input into PG::BinaryDecoder::Array. #743
  • Free COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. #742
  • Prevent SQL injection in set_client_encoding. #741
  • Add GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. #739
  • Remove option "quirks_mode" from JSON en/decoder to fix compat with json-3.0 gem. #737
  • Respect calendar type of Ruby and PostgreSQL. #725
  • Fix broken set_notice_(receiver|processor) callback after GC.compact. #734
  • Disable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. #635
  • Use RARRAY_LENINT to avoid possible overflow. #728
  • Fix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. #714, #715
  • Avoid possible integer overflow in query parameter encoding. #719
  • Ensure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. #709
  • Raise on a too large input string to PG::TextEncoder::Bytea. #717
  • Check PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.
  • Remove accidentally copied "static" keyword from Copy and Record encoder. #711
  • Avoid possibility to replace typemap while being used in Copy and Record encoders and decoders. #707
  • Add GC_GUARD's for encoding converted strings sent to the server. #705
  • Fix incomplete transaction commit when thread is shutdown ungracefully. #704
  • Assign VALUE after registration per rb_gc_register_address() #703
  • Update dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 #752
Commits
  • fcf40c5 Add new gem signing certificate
  • d41e07a Merge pull request #753 from larskanis/rm-pgsql-10
  • 8e1ee8f Remove some conditions for PostgreSQL-10
  • 050c56d Fix typo in CHANGELOG and add version note
  • 2c4934e Bump VERSION to 1.7.0
  • f644ba2 Update release notes once more
  • b16542d Merge pull request #752 from larskanis/upd-binaries
  • 66b27c6 Update dependencies for binary gems to
  • 6a07394 Add CHANGELOG entry for pg-1.7.0
  • 5390356 Merge pull request #749 from larskanis/minruby-3.1
  • Additional commits viewable in compare view

Updates railties from 8.1.3.1 to 8.1.4

Release notes

Sourced from railties's releases.

8.1.4

Active Support

  • Fix the debug error page rendering for SyntaxErrors with multi-line messages.

    Marco Roth

  • Make ActiveSupport::JSON.decode compatible with the upcoming json 3.0 gem.

    Earlopain

  • Fix number_to_human_size crashing for sizes above a terabyte by supporting petabyte, exabyte, and zettabyte storage units.

    Kenta Ishizaki

  • Fix Range#sole raising NoMethodError when the enumerable core extension isn't already loaded.

    Kenta Ishizaki

  • Fix ActiveSupport::Cache::FileStore raising NameError for FileUtils when fileutils isn't already loaded.

    Kenta Ishizaki

  • Fix Enumerable#in_order_of with filter: true dropping nil elements explicitly named in the series.

    Kenta Ishizaki

  • Keep HashWithIndifferentAccess#filter returning a HashWithIndifferentAccess instead of a plain Hash.

    Kenta Ishizaki

  • Fix number_to_human and number_to_human_size crashing when :precision is nil.

    Kenta Ishizaki

  • Fix ActiveSupport::InheritableOptions#to_h to recursively flatten nested InheritableOptions parents.

    Andrew Novoselac

  • Fix ActiveSupport::StructuredEventSubscriber.debug_only leaking debug-only methods across subscriber subclasses.

    Kenta Ishizaki

... (truncated)

Changelog

Sourced from railties's changelog.

Rails 8.1.4 (September 24, 2026)

  • Include the offending value in the secret_key_base= error message.

    Jean Boussier

  • Load database config when a connection is absent from the shared section.

    database_configuration no longer raises NoMethodError when a shared config section is missing a subsection for a particular connection name.

    Kenta Ishizaki

  • Round-trip the null: false attribute modifier in GeneratedAttribute#to_s.

    rails generate now emits the ! modifier for attributes with null: false, so the generated command string can be used to regenerate the same migration.

    Kenta Ishizaki

  • Fix infinite route reload when after_routes_loaded hooks access routes.

    The :loading state is now held across after_routes_loaded hooks, so a hook that touches routes no longer triggers a redundant reload.

    Chedli Bourguiba

  • Fix LazyRouteSet thrashing when url_helpers are included into Object.

    method_missing and respond_to_missing? now only trigger a route reload for methods ending in _path or _url, preventing every respond_to? call from re-entering the route loader.

    Chedli Bourguiba

  • Add RoutesReloader#loaded to check whether routes have been loaded.

    Rafael Mendonça França

  • Mark routes as loaded when the routes reloader executes standalone.

    RoutesReloader#execute now sets the load state to loaded, so calling it directly (outside of execute_unless_loaded) no longer leaves the reloader in a state where routes are considered unloaded.

    Kenta Ishizaki

  • Make mounted route helpers (e.g. main_app, engine mount proxies) trigger the lazy route load instead of raising NoMethodError when called before routes are drawn.

... (truncated)

Commits
  • c3466ea Preparing for 8.1.4 release

…h 4 updates

Bumps the bundler-minor-patch group with 4 updates in the / directory: [rubocop](https://github.com/rubocop/rubocop), [simplecov](https://github.com/simplecov-ruby/simplecov), [pg](https://github.com/ged/ruby-pg) and [railties](https://github.com/rails/rails).


Updates `rubocop` from 1.90.0 to 1.91.0
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v1.90.0...v1.91.0)

Updates `simplecov` from 1.2.0 to 1.3.2
- [Release notes](https://github.com/simplecov-ruby/simplecov/releases)
- [Changelog](https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md)
- [Commits](simplecov-ruby/simplecov@v1.2.0...v1.3.2)

Updates `pg` from 1.6.3 to 1.7.0
- [Changelog](https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md)
- [Commits](ged/ruby-pg@v1.6.3...v1.7.0)

Updates `railties` from 8.1.3.1 to 8.1.4
- [Release notes](https://github.com/rails/rails/releases)
- [Changelog](https://github.com/rails/rails/blob/v8.1.4/railties/CHANGELOG.md)
- [Commits](rails/rails@v8.1.3.1...v8.1.4)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.91.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: bundler-minor-patch
- dependency-name: simplecov
  dependency-version: 1.3.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: bundler-minor-patch
- dependency-name: pg
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: bundler-minor-patch
- dependency-name: railties
  dependency-version: 8.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: bundler-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Oct 12, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants