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.982 kb
e189242 @igrigorik 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
b55b140 @igrigorik add highlighting to readme
authored
11 ```bash
e189242 @igrigorik add readme
authored
12 $> gem install bugspots
e58bca8 @igrigorik bump release version
authored
13 $> bugspots /path/to/repo
14 $> git bugspots (in root of current git project, --help for options)
e189242 @igrigorik add readme
authored
15 ```
16
17 ## Results
18
b55b140 @igrigorik add highlighting to readme
authored
19 ```bash
f93134d @igrigorik update readme, bump version
authored
20 $> cd /your/git/repo
e58bca8 @igrigorik bump release version
authored
21 $> git bugspots -d 500
f93134d @igrigorik update readme, bump version
authored
22
b55b140 @igrigorik add highlighting to readme
authored
23 .. example output ..
e189242 @igrigorik 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 @igrigorik update readme, bump version
authored
89 (MIT License) - Copyright (c) 2011 Ilya Grigorik
Something went wrong with that request. Please try again.