Skip to content
CAI
Software that uses CAICheck a score

deivid-rodriguez/pry-byebug

63.0

Adequate · 19 September 2026

820

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

pry-byebug is a Ruby gem that integrates the Byebug debugger with the Pry REPL, enabling interactive code debugging and navigation. It provides commands for setting breakpoints, stepping through execution, and inspecting the call stack directly within the Pry environment. The system manages the lifecycle of debugging sessions and handles source code context to facilitate seamless interaction between the two tools.

How it got here

2012 — Rebranding to pry-byebug

4 changes.

The project was rebranded from pry-debugger to pry-byebug, replacing the deprecated debugger gem with byebug. This involved removing all legacy integration code, updating the library entry point, and modernizing dependencies to require Ruby 3.2.0 or higher.

2013–2014 — Pry integration and test suite

5 changes.

This period focused on deeply integrating the Byebug debugger with the Pry REPL, introducing a new PryProcessor for navigation and a dedicated module for breakpoint management. The work also involved restructuring the library's internal architecture and establishing a comprehensive initial test suite with example fixtures to verify core functionality.

2015–2018 — Codebase refactoring and test expansion

4 changes.

The project underwent a significant structural overhaul by rewriting debugger commands to align with modern Pry conventions and extracting logic into modular helper classes. This period also focused on improving code quality and compatibility through Ruby 2.7 adjustments, adding comprehensive test coverage for core debugging features, and standardizing the development environment with tool binstubs.

Features

Added binstubs for Bundler, Rake, and RuboCop

The project now includes executable binstubs in the bin directory for Bundler, Rake, and RuboCop. These scripts ensure that the correct versions of these tools are used by loading the Gemfile and activating the specific bundler version defined in the lockfile, providing a consistent development and execution environment.

bin · high confidence

New Byebug integration for breakpoint management

Added lib/pry/byebug/breakpoints.rb, a new module that wraps Byebug's breakpoint functionality to provide Pry-specific features. This includes support for file and method breakpoints, conditional expressions, and standard CRUD operations (add, delete, enable, disable). The module acts as an Enumerable and handles source code retrieval for breakpoints, integrating with Pry's code processing capabilities.

lib/pry · high confidence

New PryProcessor enables navigation commands within Pry REPL

A new PryProcessor class has been added to lib/byebug/processors/pry\_processor.rb to integrate Pry more deeply with Byebug. This processor wraps the Pry REPL to intercept and handle navigational commands such as backtrace, up, down, frame, next, step, and finish directly within the Pry environment. It manages the lifecycle of the Pry instance, resuming the REPL at the appropriate execution points (lines, returns, breakpoints) and delegating specific debugger actions to the underlying Byebug commands, allowing users to navigate the call stack and control execution flow without leaving the Pry interface.

lib/byebug · high confidence

Removals

Removal of pry-debugger integration

The pry-debugger library and its associated files (cli, commands, processor, pry\_ext, version) have been completely removed from the codebase. This eliminates the previous integration that allowed Pry to interact with the 'debugger' gem for navigation and breakpoint handling.

lib/pry-debugger · high confidence

Behavioural changes

Project rebranded to pry-byebug with updated documentation and tooling

The project has been renamed from pry-debugger to pry-byebug, reflecting a shift from the deprecated debugger gem to byebug. The README has been completely rewritten to document the new step-by-step debugging and stack navigation commands (such as \break\, \step\, \next\, \finish\, \backtrace\, \up\, \down\, and \frame\) and specifies a requirement for MRI 3.2.0 or higher. Additionally, the repository now includes a comprehensive RuboCop configuration, a Markdown linter setup, and a Contributor Code of Conduct.

(repo-wide) · high confidence

Pry-Byebug version 3.12.0 release

This update releases version 3.12.0 of the pry-byebug gem. The diff shows a complete restructuring of the library's internal architecture, introducing a new modular file layout with dedicated files for base functionality, CLI initialization, command loading, and Pry extension hooks (including support for pry-remote). It also implements a custom Control-D handler to ensure byebug stops correctly before exiting the Pry instance.

lib/pry-byebug · high confidence

Refactor breakpoint and REPL helper modules

The codebase has been reorganized by extracting common functionality into dedicated helper modules within the \lib/pry-byebug/helpers\ directory. This includes \Breakpoints\ for managing breakpoint display and status, \Location\ for handling source file detection with Ruby 2.7 compatibility, \Multiline\ for processing multi-line input contexts, and \Navigation\ for managing REPL loop breaks. These changes improve code modularity and address specific compatibility warnings, such as avoiding \\_\FILE\\_\ evaluation in newer Ruby versions.

lib/pry-byebug/helpers · high confidence

Rename pry-debugger to pry-byebug

The library has been renamed from pry-debugger to pry-byebug. The old entry point lib/pry-debugger.rb has been removed and replaced with lib/pry-byebug.rb, which now requires the pry-byebug CLI. This change reflects the underlying switch from the debugger gem to byebug.

lib · high confidence

Rewritten debugger commands with improved session management

The debugger commands in lib/pry-byebug/commands have been rewritten to follow modern Pry conventions, introducing a new 'backtrace' command and ensuring that the Byebug debugging session is properly stopped when the user exits or quits the REPL. This change affects core navigation and control commands (such as step, next, continue, up, down, frame, finish, and breakpoints), providing a more consistent user experience and preventing the debugger from lingering in the background after the session ends.

lib/pry-byebug/commands · high confidence

Test coverage

Added example scripts for testing debugger commands; Added tests for breakpoint, stepping, and frame commands; Initial test suite for pry-byebug.

Dependencies

Update to Ruby 3.2+ and modernize dependencies

The gem now requires Ruby 3.2.0 or later, dropping support for older Ruby versions. Runtime dependencies have been updated to use byebug \~\> 13.0 and pry (\>= 0.13, \< 0.17). Development dependencies are now explicitly defined in the Gemfile, including rake \~\> 13.0, chandler 0.9.0, faraday-retry, mdl 0.15.0, minitest \~\> 5.14, minitest-bisect \~\> 1.5, and rubocop \~\> 1.0. The legacy pry-debugger gemspec has been removed in favor of the current pry-byebug gemspec.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 63.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 49
  • Readiness 74
  • Security 87

Changes since last survey

  • 300 commits — 281 feature/other, 19 fixes

By area

  • (root) — 216 commits
  • (repo) — 25 commits
  • .github/workflows — 20 commits
  • .circleci/config.yml — 12 commits
  • lib/pry-byebug — 8 commits
  • gemfiles/pry_master — 6 commits
  • test/commands — 3 commits
  • .dependabot/config.yml — 2 commits
  • .github/dependabot.yml — 2 commits
  • test/support — 2 commits
  • .github/FUNDING.yml — 1 commit
  • bin/bundle — 1 commit
  • bin/rake — 1 commit
  • lib/pry — 1 commit

Notable commits

  • fix: Fix CI badge (#470)
  • fix: Fix PR references in changelog
  • fix: Fix RuboCop warnings (#438)
  • fix: Fix Pry.config.control_d_handler arity deprecation
  • fix: Fix pry deprecation
  • fix: Fix code coverage reporting (#355)
  • fix: Fix coverage badge
  • fix: Fix dependabot config (#274)
  • fix: Fix external encoding so that tests pass
  • fix: Fix flaky test failure (#261)
  • fix: Fix minitest 6 deprecations (#254)
  • fix: Fix new rubocop issues
  • fix: Fix pry broken link (#388)
  • fix: Fix rubocop 0.80 warnings (#290)
  • fix: Fix ruby 2.7 warning (avoid evaluating FILE) (#246)
  • fix: Fix ruby version reference in changelog
  • fix: Fix workflows to not use set-env (#353)
  • fix: Move mdl task to Rakefile and fix offenses
  • fix: Use a fixed test-reporter version
  • change: Adapt expectations to ruby 2.5 behavior
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

deivid-rodriguez/pry-byebug was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 5459d85346c43b1eae3c01f066995a60b997da03 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.