The Case of the Missing Contribution
14 Sep 2018
I love using Rubocop , not
only is it great way to keep things clean, I contributed to the code
base.
This was the pull
request I made:
.to eq(['Assignment Branch Condition size for method_name is too ' \
- 'high. [6.4/0]']) # sqrt(1*1 + 5*5 + 2*2) => 6.4
+ 'high. [6.4/0]']) # sqrt(1*1 + 6*6 + 2*2) => 6.4
But, when I look the change in the current file, I only see:
50 it 'registers an offense for complex content including A, B, and C ' \
51 'scores' do
52 expect_offense ( <<- RUBY . strip_indent )
53 def method_name
54 ^^^^^^^^^^^^^^^ Assignment Branch Condition size for method_name is too high. [6.4/0]
55 my_options = Hash.new if 1 == 1 || 2 == 2 # 1, 3, 2
56 my_options.each do |key, value| # 0, 1, 0
57 p key # 0, 1, 0
58 p value # 0, 1, 0
59 end
60 end
61 RUBY
62 end
source
What happened to my contribution??
git blame
view
Well, if we look at the section with git blame
, this is what we see:
e38f5551db (Jonas Arvidsson 2014-10-18 00:51:39 +0200 50) it 'registers an offense for complex content including A, B, and C ' \
e38f5551db (Jonas Arvidsson 2014-10-18 00:51:39 +0200 51) 'scores' do
aab0516dd3 (Ted Johansson 2018-06-09 23:58:19 +0800 52) expect_offense(<<-RUBY.strip_indent)
3c71da31aa (Yuji Nakayama 2017-04-09 19:23:08 +0900 53) def method_name
aab0516dd3 (Ted Johansson 2018-06-09 23:58:19 +0800 54) ^^^^^^^^^^^^^^^ Assignment Branch Condition size for method_name is too high. [6.4/0]
3c71da31aa (Yuji Nakayama 2017-04-09 19:23:08 +0900 55) my_options = Hash.new if 1 == 1 || 2 == 2 # 1, 3, 2
3c71da31aa (Yuji Nakayama 2017-04-09 19:23:08 +0900 56) my_options.each do |key, value| # 0, 1, 0
3c71da31aa (Yuji Nakayama 2017-04-09 19:23:08 +0900 57) p key # 0, 1, 0
3c71da31aa (Yuji Nakayama 2017-04-09 19:23:08 +0900 58) p value # 0, 1, 0
3c71da31aa (Yuji Nakayama 2017-04-09 19:23:08 +0900 59) end
3c71da31aa (Yuji Nakayama 2017-04-09 19:23:08 +0900 60) end
8f37b7f2f0 (Ted Johansson 2017-06-05 16:30:15 +0800 61) RUBY
d2ba8bf5f3 (savef 2016-10-07 23:48:33 +0100 62) end
source
Yup, my commit is definitely not there. :-(
git log
message
I wonder what happened to it? Let’s look up the commit git blame
references in git log
$ git log 3c71da31aa37282281785a09dfa3ae234bae0fcb
commit 3c71da31aa37282281785a09dfa3ae234bae0fcb
Author: Yuji Nakayama <[email protected] >
Date: Sun Apr 9 19:23:08 2017 +0900
Use here-document for example sources in specs for readability
The array-of-lines style is hard to read. It's usable only when there' re
trailing whitespaces in the example source.
Standard
--------
The following source :
```
source = [
'def some_method' ,
' body' ,
'end'
]
END
```
... should be converted to:
```
source = <<- END .strip_indent
def some_method
body
end
END
```
With indentations
-----------------
The following source :
```
source = [
' def some_method' ,
' body' ,
' end'
]
END
```
... should be converted to:
```
source = <<- END .strip_margin('|')
| def some_method
| body
| end
END
```
With trailing whitespaces
-------------------------
The following source does _not_ need to be converted:
```
source = [
'def some_method' ,
' body ' ,
'end'
]
END
```
source
Welp - being an open source contributor was short as a re-write took
out my contribution.
git log -S
to the Rescue??
I learned recently from this Ruby talk
about git log -S
, which is more powerful than git blame
as it
tracks code over history, not just commit messages.
Let’s see what git log -S
shows in this case when I focus on my main
contribution: 6*6
:
$ git log -S 6* 6
commit aab0516dd34247aed2588254690b5639524684ca
Author: Ted Johansson <[email protected] >
Date: Sat Jun 9 23:58:19 2018 +0800
Improve usage of offense matchers and heredocs in specs
commit 2ce51e117380881004ed13fced1106a768d2d4f7
Author: Andrew Leung <[email protected] >
Date: Sun Jan 29 22:07:17 2017 -0500
Fix documentation example for ABC Size ( #3985)
The given code example has an ABC size of 6.4, but comments list the
calculation as:
Math.sqrt( 1* 1 + 5* 5 + 2* 2)
which results in : 5.48.
The correct calculation for the given the example are:
Math.sqrt( 1* 1 + 6* 6 + 2* 2) = 6.40
commit d55f91aea13f7b122ab19dd4606abd3306daac3b
Author: Bozhidar Batsov <[email protected] >
Date: Thu Sep 4 18:57:44 2014 +0300
[ Fix #578] Add a logo
source
Oh - interesting, my commit still appears in the history, yes! So that
means I am still contributor. Thank you git log -S
!