HowtoReport » History » Version 1
How to report bugs in Ruby
This guide needs proofreading. 日本語版(Japanese version): HowToReportJa.
IMPORTANT: If the bug is security-related (security hole, vulnerability, etc.), Don't report it here. Please mail firstname.lastname@example.org (Closed Mailing List)
Try the latest version
If you aren't already using the latest version, try installing a newer stable release. See Downloading Ruby
Prepare the following things
Reproducing steps; reproducing code is needed
What you expected
What happened (If you have a error log, don't omit it.)
If Ruby crashed on OS X, you should have a crashlog under ~/Library/Logs/CrashReporter or /Library/Logs/CrashReporter. You should paste or attach it if available.
Open the following page and click "New Issue" in the navigation bar at the top of the page. (Note that you must be logged in to Redmine in order for that link to appear.)
If you're reporting a bug in Ruby 1.8 ONLY: Ruby 1.8
If you're reporting a bug in Ruby 1.9/2.0 ONLY: ruby-trunk
If you're reporting a bug in both Ruby 1.9/2.0 and Ruby 1.8: ruby-trunk, and write like "this bug can be reproduced in Ruby 1.8 as well."
Fill the form, then register it.
Preferred language: "English" or "Japanese"; Which language is your report written in?
Tracker: Usually select "Bug" or "Feature".
Subject: Write a summary of bug (or problem) in about 60 characters.
Description: Write the things in (2)
Status and Priority: Leave these alone.
ruby -v: Paste
ruby -v result.
Assignee, Category, Target version, Start date, Due date, Estimated time, % Done: Leave these alone.
Wait for reply
If ticket doesn't have any replies after 10 days, you can send a reminder.
Please reply to feedback requests. If a bug report doesn't get any feedback, it'll eventually get rejected.
More detailed steps for reporting
Do some searching
Has the problem already been reported by someone? (Search in Google or Redmine)
Test the problem is reproducible in the trunk or maintenance branch
Is it already fixed?
See "It's not a bug or already fixed" at the below.
OS X bundled OpenSSL is something wrong. If you see "CFUNC :connect" in your crash log, please see "It's not bug or already fixed".
Prepare the following things
Reproducing steps (Smallest reproducing code)
The minimum amount of code possible is recommended.
If using a gem in reproducing code, write the "gem install" command in the reproduction steps.
Only supplying a log, or something like "On an xx test" won't lead to any action by developers.
Don't omit running log or error log.
if Ruby crashed in OS X, you should have crashlog under ~/Library/Logs/CrashReporter or /Library/Logs/CrashReporter. You should paste or attach it if you have one.
What did you expect?, and why?
Example: It is written on RDoc, It works as might have been expected on an older version, etc.
What is the severity of the bug?
Example of a severe bug: A regression, segfault or build failure on a supported platform, or a bug that breaks a widely used gem.
Example of a less severe bug: A lack of consistency in an API, a bug that only occurs in a corner case, or a mild performance degredation.
Compiler version and compiler name
Backtrace on debugger
"gem list" and "gem env" if the reproducing steps includes gem
Open form and fill it (See "Simple steps.")
Wait for reply
Make better reports
Only on ruby
How to get trunk; See Repository guide. If you can't use svn, download snapshot.
How to take backtrace; Run gdb by gdb --args ruby foo.rb, Then type run, And type bt after ruby crashed.
Check that it's not an RVM bug.
Mention how you installed ruby. Did you install it from source, from a distribution package (which distribution?), ruby-installer,.. ?
If you installed Ruby using RVM try replicating the bug with Ruby installed by other means.
We used to get a lot of reports which were caused by RVM, not Ruby.
Write unit test on report; Refer under test/ directory
If you have written a patch, run make update-rubyspec ; make test-rubyspec ; make check and check tests passed; See DeveloperHowto on detail.
Is it really a bug?
Reference your claims.
Refer to RDoc or some document to check specification
If you aren't sure, ask in IRC or on the mailing list
Check List of IRC and mailing lists and join them.
Check if it is already reported by searching
Report one thing on one report
Write required things concisely.
Check that the report has enough information to reproduce the bug.
It's not a bug or already fixed
There are "lib/ruby/1.9.1/net/http.rb" and "CFUNC :connect" in log, and I'm using OS X:
OS X bundled openssl is something wrong. Build and install openssl by user. (you can use homebrew: brew install openssl)
After install, configure ruby with --with-openssl-dir=/usr/local (/usr/local is example. specify prefix that contains installed openssl.) and build ruby again.
After it is fixed
Check it's fixed on next release.
Check it's fixed on preview release and RC release.
Points of this guide
This guide is used for making communication smoother between bug reporter and developers.
Bug reporter isn't needed to follow this guide always. But most important things are required for bug reporting.
Any reports won't be rejected if report doesn't follow this guide. But if report needs additional information, developer or someone requires following this guide.
This guide isn't always right. You can fix this guide when you think it isn't right. Discussing it on mailing-list ruby-core (English) or ruby-dev (Japanese) is recommended.
How to Report Bugs Effectively
mozilla's Bug writing guidelines
Painless Bug Tracking