CONTRIBUTING

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Bug Reports

Development dependencies

Running the test suite

Code style

Runnning clang-format on macOS

At the moment byebug uses older clang-format version to enforce C codestyle than can be found in Homebrew. If you are planning to change some C source here it is recommended to use direnv to hook that older version into your shell:

With that your $PATH will be updated to use older clang-format every time you cd into byebug source code folder. It will reverted back when you cd out of it as well.

Byebug as a C-extension

Byebug is a gem developed as a C-extension. The debugger internal's functionality is implemented in C (the interaction with the TracePoint API). The rest of the gem is implemented in Ruby. Normally you won't need to touch the C-extension, but it will obviously depended on the bug you're trying to fix or the feature you are willing to add. You can learn more about C-extensions here or here.