Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 90 lines (76 sloc) 3.975 kb
e189242 Ilya Grigorik add readme
authored
1 # Bugspots - Bug Prediction Heuristic
2
3 An implementation of the simple bug prediction heuristic outlined by the Google Engineering team: [Bug Prediction at Google](http://google-engtools.blogspot.com/2011/12/bug-prediction-at-google.html)
4
5 > Well, we actually have a great, authoritative record of where code has been requiring fixes: our bug tracker and our source control commit log! The research indicates that predicting bugs from the source history works very well, so we decided to deploy it at Google.
6
7 Point bugspots at any git repo and it will identify the hotspots for you.
8
9 ## Usage
10
11 ```
12 $> gem install bugspots
e58bca8 Ilya Grigorik bump release version
authored
13 $> bugspots /path/to/repo
14 $> git bugspots (in root of current git project, --help for options)
e189242 Ilya Grigorik add readme
authored
15 ```
16
17 ## Results
18
19 ```
f93134d Ilya Grigorik update readme, bump version
authored
20 $> cd /your/git/repo
e58bca8 Ilya Grigorik bump release version
authored
21 $> git bugspots -d 500
f93134d Ilya Grigorik update readme, bump version
authored
22
23 .. example output ..
e189242 Ilya Grigorik add readme
authored
24
25 Scanning /git/eventmachine repo
26 Found 31 bugfix commits, with 23 hotspots:
27
28 Fixes:
29 - Revert "Write maximum of 16KB of data to an SSL connection per tick (fixes #233)" for #273
30 - Do not close attached sockets (fixes #200)
31 - Write maximum of 16KB of data to an SSL connection per tick (fixes #233)
32 - Merge branch 'master' into close_schedule_fix
33 - Remove dependency on readbytes.rb for ruby 1.9 (fixes #167, #234)
34 - Fix compilation on MSVC2008 (fixes #253)
35 - EM::Deferrable#(callback|errback|timeout) now return self so you can chain them (closes #177)
36 - Make EventMachine::Connection#get_peername and #get_sockname valid for IPv6 (closes #132)
37 - reconnect DNS socket if closed
38 - Use String#bytesize in EM::Connection#send_datagram for 1.9 (closes #153)
39 - Fix an issue that would cause the EM process to block when the loopbreak pipe filled up (closes #158)
40 - namespace std is already included, so just call min(). fixes vc6 issue with min macro
41 - Use close() instead of closesocket() to prevent FD leaks on windows.
42 - Stop advertising non-available authentication mechanisms, allow multi-line authentication - fixes compatibility with javamail
43 - typo fixes and undef fstat for ruby on Windows
44 - Deprecate now aged info, as it's fixed
45 - Some fixes for Solaris and Nexenta (opensolaris kernel + linux userland)
46 - Some fixes for solaris
47 - Minor fixes for rbx compatibility
48 - Reduce the size of the RunEpollOnce stack frame by 800kb. This fixes the long-standing epoll+threads issue (#84)
49 - Fixed aggregated event handling for kqueue and notify, fixed path for ifconfig.
50 - More win32 fixes
51 - Added test for reactor_thread? and fixed up EM.schedule for pre-reactor schedules
52 - Merge branch 'master' of git@github.com:eventmachine/eventmachine
53 - Use read instead of recv in ConnectionDescriptor::Read (fixes EM.attach issues with pipes)
54 - Use false to indicated a cancelled timer instead of using an empty proc. Reduces mem usage in certain situations.
55 - Inotify fixes: file_delete only fires after fds have been closed, use syscall hackery for older linux distributions (*cough* debian)
56 - Clean up deferrable.rb: fixed rdoc, alias method wrappers, remove unnecessary forwardable
57 - More solaris build fixes.
58 - More solaris build issues fixed
59 - fixed a small bug with basic auth (cherry-pick conflict merge from mmmurf (closes #92))
60
61 Hotspots:
62 0.9723 - ext/ed.cpp
63 0.3311 - ext/ed.h
64 0.3271 - ext/em.cpp
65 0.3034 - lib/eventmachine.rb
66 0.2433 - lib/em/protocols/postgres3.rb
67 0.2403 - ext/project.h
68 0.0431 - lib/em/deferrable.rb
69 0.029 - ext/cmain.cpp
70 0.0278 - ext/rubymain.cpp
71 0.0277 - ext/eventmachine.h
72 0.0241 - lib/em/resolver.rb
73 0.0241 - tests/test_resolver.rb
74 0.0225 - lib/em/connection.rb
75 0.0013 - lib/em/protocols/smtpserver.rb
76 0.0003 - ext/extconf.rb
77 0.0002 - tests/test_basic.rb
78 0.0001 - ext/em.h
79 0.0001 - ext/cplusplus.cpp
80 0.0001 - ext/fastfilereader/extconf.rb
81 0.0 - lib/em/filewatcher.rb
82 0.0 - tests/test_file_watch.rb
83 0.0 - ext/fastfilereader/mapper.cpp
84 0.0 - lib/protocols/httpclient.rb
85 ```
86
87 ### License
88
f93134d Ilya Grigorik update readme, bump version
authored
89 (MIT License) - Copyright (c) 2011 Ilya Grigorik
Something went wrong with that request. Please try again.