HowtoReport » History » Version 1

Yui NARUSE, 12/19/2013 11:00 AM

1 1 Yui NARUSE
2 1 Yui NARUSE
= HowtoReport
3 1 Yui NARUSE
4 1 Yui NARUSE
How to report bugs in Ruby
5 1 Yui NARUSE
This guide needs proofreading. 日本語版(Japanese version): HowToReportJa.
6 1 Yui NARUSE
7 1 Yui NARUSE
Simple steps
8 1 Yui NARUSE
IMPORTANT: If the bug is security-related (security hole, vulnerability, etc.), Don't report it here. Please mail (Closed Mailing List)
9 1 Yui NARUSE
10 1 Yui NARUSE
Try the latest version
11 1 Yui NARUSE
If you aren't already using the latest version, try installing a newer stable release. See Downloading Ruby
12 1 Yui NARUSE
Prepare the following things
13 1 Yui NARUSE
Reproducing steps; reproducing code is needed
14 1 Yui NARUSE
Result of `ruby -v`
15 1 Yui NARUSE
What you expected
16 1 Yui NARUSE
What happened (If you have a error log, don't omit it.)
17 1 Yui NARUSE
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.
18 1 Yui NARUSE
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.)
19 1 Yui NARUSE
If you're reporting a bug in Ruby 1.8 ONLY: Ruby 1.8
20 1 Yui NARUSE
If you're reporting a bug in Ruby 1.9/2.0 ONLY: ruby-trunk
21 1 Yui NARUSE
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."
22 1 Yui NARUSE
Fill the form, then register it.
23 1 Yui NARUSE
Preferred language: "English" or "Japanese"; Which language is your report written in?
24 1 Yui NARUSE
Tracker: Usually select "Bug" or "Feature".
25 1 Yui NARUSE
Subject: Write a summary of bug (or problem) in about 60 characters.
26 1 Yui NARUSE
Description: Write the things in (2)
27 1 Yui NARUSE
Status and Priority: Leave these alone.
28 1 Yui NARUSE
ruby -v: Paste `ruby -v` result.
29 1 Yui NARUSE
Assignee, Category, Target version, Start date, Due date, Estimated time, % Done: Leave these alone.
30 1 Yui NARUSE
Wait for reply
31 1 Yui NARUSE
If ticket doesn't have any replies after 10 days, you can send a reminder.
32 1 Yui NARUSE
Please reply to feedback requests. If a bug report doesn't get any feedback, it'll eventually get rejected.
33 1 Yui NARUSE
More detailed steps for reporting
34 1 Yui NARUSE
Do some searching
35 1 Yui NARUSE
Has the problem already been reported by someone? (Search in Google or Redmine)
36 1 Yui NARUSE
Test the problem is reproducible in the trunk or maintenance branch
37 1 Yui NARUSE
Is it already fixed?
38 1 Yui NARUSE
See "It's not a bug or already fixed" at the below.
39 1 Yui NARUSE
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".
40 1 Yui NARUSE
Prepare the following things
41 1 Yui NARUSE
Reproducing steps (Smallest reproducing code)
42 1 Yui NARUSE
The minimum amount of code possible is recommended.
43 1 Yui NARUSE
If using a gem in reproducing code, write the "gem install" command in the reproduction steps.
44 1 Yui NARUSE
Only supplying a log, or something like "On an xx test" won't lead to any action by developers.
45 1 Yui NARUSE
ruby -v
46 1 Yui NARUSE
What happened?
47 1 Yui NARUSE
Don't omit running log or error log.
48 1 Yui NARUSE
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.
49 1 Yui NARUSE
What did you expect?, and why?
50 1 Yui NARUSE
Example: It is written on RDoc, It works as might have been expected on an older version, etc.
51 1 Yui NARUSE
What is the severity of the bug?
52 1 Yui NARUSE
Example of a severe bug: A regression, segfault or build failure on a supported platform, or a bug that breaks a widely used gem.
53 1 Yui NARUSE
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.
54 1 Yui NARUSE
Compiler version and compiler name
55 1 Yui NARUSE
Backtrace on debugger
56 1 Yui NARUSE
"gem list" and "gem env" if the reproducing steps includes gem
57 1 Yui NARUSE
./configure options
58 1 Yui NARUSE
Open form and fill it (See "Simple steps.")
59 1 Yui NARUSE
Wait for reply
60 1 Yui NARUSE
Make better reports
61 1 Yui NARUSE
Only on ruby
62 1 Yui NARUSE
63 1 Yui NARUSE
How to get trunk; See Repository guide. If you can't use svn, download snapshot.
64 1 Yui NARUSE
How to take backtrace; Run gdb by gdb --args ruby foo.rb, Then type run, And type bt after ruby crashed.
65 1 Yui NARUSE
Check that it's not an RVM bug.
66 1 Yui NARUSE
Mention how you installed ruby. Did you install it from source, from a distribution package (which distribution?), ruby-installer,.. ?
67 1 Yui NARUSE
If you installed Ruby using RVM try replicating the bug with Ruby installed by other means.
68 1 Yui NARUSE
We used to get a lot of reports which were caused by RVM, not Ruby.
69 1 Yui NARUSE
Write unit test on report; Refer under test/ directory
70 1 Yui NARUSE
If you have written a patch, run make update-rubyspec ; make test-rubyspec ; make check and check tests passed; See DeveloperHowto on detail.
71 1 Yui NARUSE
72 1 Yui NARUSE
73 1 Yui NARUSE
Is it really a bug?
74 1 Yui NARUSE
Reference your claims.
75 1 Yui NARUSE
Refer to RDoc or some document to check specification
76 1 Yui NARUSE
If you aren't sure, ask in IRC or on the mailing list
77 1 Yui NARUSE
Check List of IRC and mailing lists and join them.
78 1 Yui NARUSE
Check if it is already reported by searching
79 1 Yui NARUSE
Report one thing on one report
80 1 Yui NARUSE
Write required things concisely.
81 1 Yui NARUSE
Check that the report has enough information to reproduce the bug.
82 1 Yui NARUSE
It's not a bug or already fixed
83 1 Yui NARUSE
There are "lib/ruby/1.9.1/net/http.rb" and "CFUNC :connect" in log, and I'm using OS X:
84 1 Yui NARUSE
OS X bundled openssl is something wrong. Build and install openssl by user. (you can use homebrew: brew install openssl)
85 1 Yui NARUSE
After install, configure ruby with --with-openssl-dir=/usr/local (/usr/local is example. specify prefix that contains installed openssl.) and build ruby again.
86 1 Yui NARUSE
After it is fixed
87 1 Yui NARUSE
Check it's fixed on next release.
88 1 Yui NARUSE
Check it's fixed on preview release and RC release.
89 1 Yui NARUSE
Points of this guide
90 1 Yui NARUSE
This guide is used for making communication smoother between bug reporter and developers.
91 1 Yui NARUSE
Bug reporter isn't needed to follow this guide always. But most important things are required for bug reporting.
92 1 Yui NARUSE
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.
93 1 Yui NARUSE
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.
94 1 Yui NARUSE
See also
95 1 Yui NARUSE
How to Report Bugs Effectively
96 1 Yui NARUSE
mozilla's Bug writing guidelines
97 1 Yui NARUSE
Painless Bug Tracking
98 1 Yui NARUSE
99 1 Yui NARUSE