how_is 18.0.4 → 18.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github_changelog_generator +3 -0
- data/.gitignore +1 -1
- data/.rspec +1 -1
- data/.rubocop.yml +22 -9
- data/.rubocop_todo.yml +21 -0
- data/CHANGELOG.md +266 -140
- data/Gemfile +12 -1
- data/Rakefile +33 -14
- data/exe/how_is +6 -11
- data/fixtures/vcr_cassettes/how_is_contributions_all_contributors.yml +78 -0
- data/fixtures/vcr_cassettes/how_is_contributions_new_contributors.yml +219 -0
- data/how_is.gemspec +2 -1
- data/lib/how_is/analyzer.rb +53 -47
- data/lib/how_is/contributions.rb +46 -0
- data/lib/how_is/fetcher.rb +10 -10
- data/lib/how_is/pulse.rb +20 -19
- data/lib/how_is/report/base_report.rb +15 -12
- data/lib/how_is/report/html.rb +59 -52
- data/lib/how_is/report/json.rb +2 -2
- data/lib/how_is/report.rb +9 -6
- data/lib/how_is/version.rb +1 -1
- data/lib/how_is.rb +19 -16
- metadata +24 -6
- data/Gemfile.lock +0 -110
data/CHANGELOG.md
CHANGED
@@ -1,212 +1,338 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
|
3
|
+
## [v18.0.5](https://github.com/how-is/how_is/tree/v18.0.5) (2017-08-06)
|
4
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v18.0.4...v18.0.5)
|
4
5
|
|
5
|
-
|
6
|
-
this project adheres to [Semantic Versioning](http://semver.org).
|
6
|
+
**Closed issues:**
|
7
7
|
|
8
|
-
|
8
|
+
- Track new contributors [\#172](https://github.com/how-is/how_is/issues/172)
|
9
|
+
- Stop using hashie's master branch [\#168](https://github.com/how-is/how_is/issues/168)
|
10
|
+
- Include JSON reports in HTML reports [\#110](https://github.com/how-is/how_is/issues/110)
|
9
11
|
|
10
|
-
|
12
|
+
**Merged pull requests:**
|
11
13
|
|
12
|
-
|
14
|
+
- re-add Gemfile.lock to .gitignore [\#186](https://github.com/how-is/how_is/pull/186) ([duckinator](https://github.com/duckinator))
|
15
|
+
- List new contributors during period [\#184](https://github.com/how-is/how_is/pull/184) ([olleolleolle](https://github.com/olleolleolle))
|
16
|
+
- Remove Gemfile.lock. [\#183](https://github.com/how-is/how_is/pull/183) ([duckinator](https://github.com/duckinator))
|
17
|
+
- Gemfile: add pry as Git dep [\#182](https://github.com/how-is/how_is/pull/182) ([olleolleolle](https://github.com/olleolleolle))
|
18
|
+
- Add config file for github\_changelog\_generator [\#179](https://github.com/how-is/how_is/pull/179) ([olleolleolle](https://github.com/olleolleolle))
|
19
|
+
- RuboCop linting [\#178](https://github.com/how-is/how_is/pull/178) ([olleolleolle](https://github.com/olleolleolle))
|
20
|
+
- Use github\_changelog\_generator for generating the changelog. [\#177](https://github.com/how-is/how_is/pull/177) ([duckinator](https://github.com/duckinator))
|
21
|
+
- Include name of rules in RuboCop output [\#175](https://github.com/how-is/how_is/pull/175) ([olleolleolle](https://github.com/olleolleolle))
|
22
|
+
- Rubocop 0.49.1 [\#174](https://github.com/how-is/how_is/pull/174) ([olleolleolle](https://github.com/olleolleolle))
|
23
|
+
- Rubocop warning removal [\#173](https://github.com/how-is/how_is/pull/173) ([olleolleolle](https://github.com/olleolleolle))
|
13
24
|
|
14
|
-
|
15
|
-
|
16
|
-
There should be no noticeable changes in functionality.
|
25
|
+
## [v18.0.4](https://github.com/how-is/how_is/tree/v18.0.4) (2017-07-14)
|
26
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v18.0.3...v18.0.4)
|
17
27
|
|
18
|
-
|
28
|
+
**Closed issues:**
|
19
29
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
30
|
+
- HowIs::CLI refactor [\#156](https://github.com/how-is/how_is/issues/156)
|
31
|
+
- "Invalid file" error doesn't include filename. [\#155](https://github.com/how-is/how_is/issues/155)
|
32
|
+
- No report and Hashie::Mash\#default warnings [\#154](https://github.com/how-is/how_is/issues/154)
|
33
|
+
- Remove from\_config\_file from docs [\#153](https://github.com/how-is/how_is/issues/153)
|
34
|
+
- Fix warnings when running `rake spec` [\#124](https://github.com/how-is/how_is/issues/124)
|
35
|
+
- Number of issues closed in the past month [\#106](https://github.com/how-is/how_is/issues/106)
|
36
|
+
- Number of PRs merged in the past month. [\#105](https://github.com/how-is/how_is/issues/105)
|
37
|
+
- Number of PRs/issues opened in past month [\#99](https://github.com/how-is/how_is/issues/99)
|
38
|
+
- Number of PRs/issues not updated in the past month [\#87](https://github.com/how-is/how_is/issues/87)
|
28
39
|
|
29
|
-
|
40
|
+
**Merged pull requests:**
|
30
41
|
|
31
|
-
|
32
|
-
|
42
|
+
- Release v18 0 4 [\#171](https://github.com/how-is/how_is/pull/171) ([duckinator](https://github.com/duckinator))
|
43
|
+
- Use Hashie stable; update Gemfile/add Gemfile.lock [\#170](https://github.com/how-is/how_is/pull/170) ([duckinator](https://github.com/duckinator))
|
44
|
+
- Pass -w to Ruby when running 'rake spec'. [\#169](https://github.com/how-is/how_is/pull/169) ([duckinator](https://github.com/duckinator))
|
45
|
+
- Rubocop cleanup [\#167](https://github.com/how-is/how_is/pull/167) ([duckinator](https://github.com/duckinator))
|
46
|
+
- Gemfile: use Hashie from master branch [\#166](https://github.com/how-is/how_is/pull/166) ([olleolleolle](https://github.com/olleolleolle))
|
47
|
+
- Update github\_api, contracts to latest [\#165](https://github.com/how-is/how_is/pull/165) ([olleolleolle](https://github.com/olleolleolle))
|
48
|
+
- Fix \(a significant number of\) RuboCop violations. [\#162](https://github.com/how-is/how_is/pull/162) ([duckinator](https://github.com/duckinator))
|
49
|
+
- README: Drop from\_config\_file reference [\#161](https://github.com/how-is/how_is/pull/161) ([olleolleolle](https://github.com/olleolleolle))
|
50
|
+
- move rubocop dep to gemspec [\#160](https://github.com/how-is/how_is/pull/160) ([duckinator](https://github.com/duckinator))
|
33
51
|
|
34
|
-
|
35
|
-
|
52
|
+
## [v18.0.3](https://github.com/how-is/how_is/tree/v18.0.3) (2017-05-25)
|
53
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v18.0.2...v18.0.3)
|
36
54
|
|
37
|
-
|
38
|
-
should find any RuboCop violations that are added in PRs. The preexisting
|
39
|
-
RuboCop violations (of which there are many) need to be addressed separately,
|
40
|
-
and there will likely be an entire release dedicated to that.
|
55
|
+
**Closed issues:**
|
41
56
|
|
42
|
-
|
57
|
+
- Issue: report.html renders only \#\<HowIs:0x007fae56966700\> [\#149](https://github.com/how-is/how_is/issues/149)
|
58
|
+
- Make CONFIG\_FILE optional when using --config. [\#41](https://github.com/how-is/how_is/issues/41)
|
43
59
|
|
44
|
-
|
45
|
-
* CLI parser refactor ([#157](https://github.com/how-is/how_is/pull/157))
|
46
|
-
* exe/how_is: Reinstate to_json, to_html ([#150](https://github.com/how-is/how_is/pull/150), by @olleolleolle)
|
60
|
+
**Merged pull requests:**
|
47
61
|
|
48
|
-
|
62
|
+
- v18.0.3 -- CHANGELOG and version bump. [\#159](https://github.com/how-is/how_is/pull/159) ([duckinator](https://github.com/duckinator))
|
63
|
+
- Add RuboCop config [\#158](https://github.com/how-is/how_is/pull/158) ([duckinator](https://github.com/duckinator))
|
64
|
+
- CLI parser refactor [\#157](https://github.com/how-is/how_is/pull/157) ([duckinator](https://github.com/duckinator))
|
65
|
+
- exe/how\_is: Reinstate to\_json, to\_html [\#150](https://github.com/how-is/how_is/pull/150) ([olleolleolle](https://github.com/olleolleolle))
|
49
66
|
|
50
|
-
|
51
|
-
|
52
|
-
call.
|
67
|
+
## [v18.0.2](https://github.com/how-is/how_is/tree/v18.0.2) (2017-03-05)
|
68
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v18.0.1...v18.0.2)
|
53
69
|
|
54
|
-
|
70
|
+
**Merged pull requests:**
|
55
71
|
|
56
|
-
|
57
|
-
([#148](https://github.com/how-is/how_is/pull/148))
|
72
|
+
- v18.0.2 - Remove unnecessary .send\(\) call in exe/how\_is. [\#148](https://github.com/how-is/how_is/pull/148) ([duckinator](https://github.com/duckinator))
|
58
73
|
|
59
|
-
## [v18.0.1]
|
74
|
+
## [v18.0.1](https://github.com/how-is/how_is/tree/v18.0.1) (2017-03-05)
|
75
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v18.0.0...v18.0.1)
|
60
76
|
|
61
|
-
|
62
|
-
fixes the `--config` flag, which was previously using the wrong method.
|
77
|
+
**Merged pull requests:**
|
63
78
|
|
64
|
-
|
79
|
+
- v18.0.1 - fix --config flag [\#147](https://github.com/how-is/how_is/pull/147) ([duckinator](https://github.com/duckinator))
|
65
80
|
|
66
|
-
|
67
|
-
|
81
|
+
## [v18.0.0](https://github.com/how-is/how_is/tree/v18.0.0) (2017-03-05)
|
82
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v17.0.0...v18.0.0)
|
68
83
|
|
69
|
-
|
84
|
+
**Closed issues:**
|
70
85
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
[
|
86
|
+
- Determine what is using open-uri [\#140](https://github.com/how-is/how_is/issues/140)
|
87
|
+
- :from != :from\_file [\#137](https://github.com/how-is/how_is/issues/137)
|
88
|
+
- Move --from documentation to README [\#136](https://github.com/how-is/how_is/issues/136)
|
89
|
+
- Why is rack required? [\#135](https://github.com/how-is/how_is/issues/135)
|
90
|
+
- Is :from\_file still an option? [\#134](https://github.com/how-is/how_is/issues/134)
|
91
|
+
- Move from\_config/from\_config\_file out of HowIs::CLI [\#52](https://github.com/how-is/how_is/issues/52)
|
75
92
|
|
76
|
-
|
77
|
-
GitHub](https://github.com/how-is/how_is/pulls?utf8=&q=is%3Apr%20created%3A2017-02-10..2017-03-03).
|
93
|
+
**Merged pull requests:**
|
78
94
|
|
79
|
-
|
95
|
+
- v18.0.0 release [\#146](https://github.com/how-is/how_is/pull/146) ([duckinator](https://github.com/duckinator))
|
96
|
+
- Add HowIs.from\_hash method [\#144](https://github.com/how-is/how_is/pull/144) ([indirect](https://github.com/indirect))
|
97
|
+
- Move documentation from design/ to README. [\#143](https://github.com/how-is/how_is/pull/143) ([duckinator](https://github.com/duckinator))
|
98
|
+
- Fix --from. [\#141](https://github.com/how-is/how_is/pull/141) ([duckinator](https://github.com/duckinator))
|
99
|
+
- Unpin Rack version. [\#139](https://github.com/how-is/how_is/pull/139) ([duckinator](https://github.com/duckinator))
|
100
|
+
- Documentation! [\#132](https://github.com/how-is/how_is/pull/132) ([duckinator](https://github.com/duckinator))
|
101
|
+
- Remove shebang line from lib/ file. [\#131](https://github.com/how-is/how_is/pull/131) ([duckinator](https://github.com/duckinator))
|
102
|
+
- Fix URL in gemspec. [\#130](https://github.com/how-is/how_is/pull/130) ([duckinator](https://github.com/duckinator))
|
103
|
+
- Gemspec: Description grammar [\#129](https://github.com/how-is/how_is/pull/129) ([olleolleolle](https://github.com/olleolleolle))
|
80
104
|
|
81
|
-
|
82
|
-
|
83
|
-
* Move documentation from design/ to README.
|
84
|
-
([#143](https://github.com/how-is/how_is/pull/143))
|
85
|
-
* Add `HowIs.from_hash` method.
|
86
|
-
([#144](https://github.com/how-is/how_is/pull/144))
|
105
|
+
## [v17.0.0](https://github.com/how-is/how_is/tree/v17.0.0) (2017-02-09)
|
106
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v16.0.0...v17.0.0)
|
87
107
|
|
88
|
-
|
108
|
+
**Merged pull requests:**
|
89
109
|
|
90
|
-
|
91
|
-
* Fix --from. ([#141](https://github.com/how-is/how_is/pull/141))
|
110
|
+
- Make from\_json parse ALL dates, not just some of them. [\#128](https://github.com/how-is/how_is/pull/128) ([duckinator](https://github.com/duckinator))
|
92
111
|
|
93
|
-
|
112
|
+
## [v16.0.0](https://github.com/how-is/how_is/tree/v16.0.0) (2017-02-09)
|
113
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v15.0.0...v16.0.0)
|
94
114
|
|
95
|
-
|
115
|
+
**Merged pull requests:**
|
96
116
|
|
97
|
-
|
98
|
-
([#129](https://github.com/how-is/how_is/pull/129))
|
99
|
-
* Fix URL in gemspec. ([#130](https://github.com/how-is/how_is/pull/130))
|
100
|
-
* Remove shebang line from lib/ file.
|
101
|
-
([#131](https://github.com/how-is/how_is/pull/131))
|
117
|
+
- Make from\_json\(\) parse dates. [\#127](https://github.com/how-is/how_is/pull/127) ([duckinator](https://github.com/duckinator))
|
102
118
|
|
119
|
+
## [v15.0.0](https://github.com/how-is/how_is/tree/v15.0.0) (2017-02-09)
|
120
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v14.0.0...v15.0.0)
|
103
121
|
|
104
|
-
|
122
|
+
**Closed issues:**
|
105
123
|
|
106
|
-
|
107
|
-
makes `HowIs.from_json` parse _all_ dates, not just _some_ dates.
|
108
|
-
(Whoops.)
|
124
|
+
- include data from GitHub Pulse in Analysis [\#116](https://github.com/how-is/how_is/issues/116)
|
109
125
|
|
110
|
-
|
126
|
+
**Merged pull requests:**
|
111
127
|
|
112
|
-
|
113
|
-
([#128](https://github.com/how-is/how_is/pull/128))
|
128
|
+
- Implement HowIs.from\_json\(\). [\#126](https://github.com/how-is/how_is/pull/126) ([duckinator](https://github.com/duckinator))
|
114
129
|
|
115
|
-
## [
|
130
|
+
## [v14.0.0](https://github.com/how-is/how_is/tree/v14.0.0) (2017-02-09)
|
131
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v13.0.0...v14.0.0)
|
132
|
+
|
133
|
+
**Closed issues:**
|
134
|
+
|
135
|
+
- Remove dead code [\#121](https://github.com/how-is/how_is/issues/121)
|
136
|
+
- Update documentation with API changes [\#118](https://github.com/how-is/how_is/issues/118)
|
137
|
+
- design an API [\#115](https://github.com/how-is/how_is/issues/115)
|
138
|
+
- correct readme [\#114](https://github.com/how-is/how_is/issues/114)
|
116
139
|
|
117
|
-
|
118
|
-
makes `HowIs.from_json` actually parse dates.
|
140
|
+
**Merged pull requests:**
|
119
141
|
|
120
|
-
|
142
|
+
- Include Pulse data in JSON reports. [\#125](https://github.com/how-is/how_is/pull/125) ([duckinator](https://github.com/duckinator))
|
143
|
+
- Remove dead code. [\#123](https://github.com/how-is/how_is/pull/123) ([duckinator](https://github.com/duckinator))
|
144
|
+
- Update README.md about API redesign. [\#120](https://github.com/how-is/how_is/pull/120) ([duckinator](https://github.com/duckinator))
|
145
|
+
- CHANGELOG typo [\#119](https://github.com/how-is/how_is/pull/119) ([olleolleolle](https://github.com/olleolleolle))
|
121
146
|
|
122
|
-
|
123
|
-
|
147
|
+
## [v13.0.0](https://github.com/how-is/how_is/tree/v13.0.0) (2017-02-09)
|
148
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v12.0.0...v13.0.0)
|
124
149
|
|
125
|
-
|
150
|
+
**Closed issues:**
|
126
151
|
|
127
|
-
|
128
|
-
|
152
|
+
- Add ISSUES.md [\#102](https://github.com/how-is/how_is/issues/102)
|
153
|
+
- Have change log link to tags [\#100](https://github.com/how-is/how_is/issues/100)
|
129
154
|
|
130
|
-
|
155
|
+
**Merged pull requests:**
|
131
156
|
|
132
|
-
|
133
|
-
|
157
|
+
- API redesign [\#117](https://github.com/how-is/how_is/pull/117) ([duckinator](https://github.com/duckinator))
|
158
|
+
- Update README.md [\#113](https://github.com/how-is/how_is/pull/113) ([duckinator](https://github.com/duckinator))
|
159
|
+
- remove pdfs and relax rack version [\#112](https://github.com/how-is/how_is/pull/112) ([indirect](https://github.com/indirect))
|
160
|
+
- \[design.md\] add 'information about how\_is' section. [\#109](https://github.com/how-is/how_is/pull/109) ([duckinator](https://github.com/duckinator))
|
161
|
+
- Specifications [\#108](https://github.com/how-is/how_is/pull/108) ([duckinator](https://github.com/duckinator))
|
162
|
+
- Have CHANGELOG link to code snapshots. [\#107](https://github.com/how-is/how_is/pull/107) ([duckinator](https://github.com/duckinator))
|
163
|
+
- Add link for ungrouped issues. [\#104](https://github.com/how-is/how_is/pull/104) ([duckinator](https://github.com/duckinator))
|
164
|
+
- Add ISSUES.md. [\#103](https://github.com/how-is/how_is/pull/103) ([duckinator](https://github.com/duckinator))
|
165
|
+
- CLI warning on single-word repository argument [\#98](https://github.com/how-is/how_is/pull/98) ([olleolleolle](https://github.com/olleolleolle))
|
134
166
|
|
135
|
-
## [
|
167
|
+
## [v12.0.0](https://github.com/how-is/how_is/tree/v12.0.0) (2016-12-11)
|
168
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v11.0.0...v12.0.0)
|
136
169
|
|
137
|
-
|
138
|
-
made JSON reports include Pulse data, thus making `HowIs.from_json()`
|
139
|
-
not make any network requests at all.
|
170
|
+
**Closed issues:**
|
140
171
|
|
141
|
-
|
172
|
+
- ZeroDivisionError [\#91](https://github.com/how-is/how_is/issues/91)
|
173
|
+
- Rake task\(s\) for regenerating example reports. [\#84](https://github.com/how-is/how_is/issues/84)
|
174
|
+
- make issue\_or\_pr\_summary use kwargs [\#78](https://github.com/how-is/how_is/issues/78)
|
175
|
+
- Define unimplemented BaseReport methods [\#77](https://github.com/how-is/how_is/issues/77)
|
176
|
+
- Extract BaseReport [\#76](https://github.com/how-is/how_is/issues/76)
|
177
|
+
- Release v11.0 [\#75](https://github.com/how-is/how_is/issues/75)
|
178
|
+
- convert average age/oldest/newest to lists [\#70](https://github.com/how-is/how_is/issues/70)
|
179
|
+
- newest PR/issue [\#69](https://github.com/how-is/how_is/issues/69)
|
142
180
|
|
143
|
-
|
144
|
-
* Include Pulse data in JSON reports.
|
145
|
-
([#125](https://github.com/how-is/how_is/pull/125))
|
181
|
+
**Merged pull requests:**
|
146
182
|
|
147
|
-
|
183
|
+
- version bump to 12.0.0 [\#97](https://github.com/how-is/how_is/pull/97) ([duckinator](https://github.com/duckinator))
|
184
|
+
- rake generate =\> rake generate\_reports. [\#96](https://github.com/how-is/how_is/pull/96) ([duckinator](https://github.com/duckinator))
|
185
|
+
- Rake tasks [\#94](https://github.com/how-is/how_is/pull/94) ([duckinator](https://github.com/duckinator))
|
186
|
+
- Fix divide by zero when no issues [\#92](https://github.com/how-is/how_is/pull/92) ([duckinator](https://github.com/duckinator))
|
187
|
+
- Changelog v12.0 [\#89](https://github.com/how-is/how_is/pull/89) ([duckinator](https://github.com/duckinator))
|
188
|
+
- Refactoring Report + \*Report. [\#88](https://github.com/how-is/how_is/pull/88) ([duckinator](https://github.com/duckinator))
|
189
|
+
- Rake tasks [\#86](https://github.com/how-is/how_is/pull/86) ([duckinator](https://github.com/duckinator))
|
190
|
+
- Newest pr issue attempt 2 [\#85](https://github.com/how-is/how_is/pull/85) ([duckinator](https://github.com/duckinator))
|
191
|
+
- Convert issue/PR info to a list. [\#83](https://github.com/how-is/how_is/pull/83) ([duckinator](https://github.com/duckinator))
|
192
|
+
- Improve generated HTML, for easier debugging. [\#82](https://github.com/how-is/how_is/pull/82) ([duckinator](https://github.com/duckinator))
|
193
|
+
- Update readme [\#81](https://github.com/how-is/how_is/pull/81) ([duckinator](https://github.com/duckinator))
|
194
|
+
- Define unimplemented methods; make github\_pulse\_summary private. [\#80](https://github.com/how-is/how_is/pull/80) ([duckinator](https://github.com/duckinator))
|
195
|
+
- Extract BaseReport into its own file. [\#79](https://github.com/how-is/how_is/pull/79) ([duckinator](https://github.com/duckinator))
|
148
196
|
|
149
|
-
|
150
|
-
|
197
|
+
## [v11.0.0](https://github.com/how-is/how_is/tree/v11.0.0) (2016-11-13)
|
198
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v10.0.0...v11.0.0)
|
151
199
|
|
152
|
-
|
153
|
-
GitHub](https://github.com/how-is/how_is/pulls?utf8=&q=is%3Apr%20created%3A2016-12-12..2017-02-09).
|
200
|
+
**Closed issues:**
|
154
201
|
|
155
|
-
|
202
|
+
- Failing tests. [\#68](https://github.com/how-is/how_is/issues/68)
|
203
|
+
- `how\_is how-is/how\_is` is broken [\#61](https://github.com/how-is/how_is/issues/61)
|
204
|
+
- Rename export! to export\_file [\#57](https://github.com/how-is/how_is/issues/57)
|
205
|
+
- Remove how\_is/chart.rb [\#56](https://github.com/how-is/how_is/issues/56)
|
206
|
+
- Unknown option --report-file referenced in the README [\#51](https://github.com/how-is/how_is/issues/51)
|
207
|
+
- Specify period for reports [\#50](https://github.com/how-is/how_is/issues/50)
|
208
|
+
- Handle singular/plural PRs and issues properly [\#49](https://github.com/how-is/how_is/issues/49)
|
209
|
+
- HTML graph messes up "\(No label\)" graph label [\#48](https://github.com/how-is/how_is/issues/48)
|
210
|
+
- Document library usage. [\#45](https://github.com/how-is/how_is/issues/45)
|
211
|
+
- Use VCR instead of files containing API responses [\#37](https://github.com/how-is/how_is/issues/37)
|
212
|
+
- Make integration tests not rely on GitHub API [\#36](https://github.com/how-is/how_is/issues/36)
|
213
|
+
- Integration tests [\#26](https://github.com/how-is/how_is/issues/26)
|
214
|
+
- Links [\#18](https://github.com/how-is/how_is/issues/18)
|
215
|
+
- \[PDF\] Show labels outside of graph [\#8](https://github.com/how-is/how_is/issues/8)
|
156
216
|
|
157
|
-
|
158
|
-
* Raise an exception/show a CLI warning if the provided repository name
|
159
|
-
isn't in the "user/repo" format.
|
160
|
-
([#98](https://github.com/how-is/how_is/pull/98))
|
217
|
+
**Merged pull requests:**
|
161
218
|
|
162
|
-
|
219
|
+
- Add changelog. [\#73](https://github.com/how-is/how_is/pull/73) ([duckinator](https://github.com/duckinator))
|
220
|
+
- Fix failing tests. [\#72](https://github.com/how-is/how_is/pull/72) ([duckinator](https://github.com/duckinator))
|
221
|
+
- Add tests for --help, -h, --version, and -v. [\#67](https://github.com/how-is/how_is/pull/67) ([duckinator](https://github.com/duckinator))
|
222
|
+
- Test refactoring [\#66](https://github.com/how-is/how_is/pull/66) ([duckinator](https://github.com/duckinator))
|
223
|
+
- Handle singular/plural PRs and issues correctly. [\#65](https://github.com/how-is/how_is/pull/65) ([duckinator](https://github.com/duckinator))
|
224
|
+
- Remove duplicate period. [\#64](https://github.com/how-is/how_is/pull/64) ([duckinator](https://github.com/duckinator))
|
225
|
+
- Handle cases where there are no issues or PRs. [\#63](https://github.com/how-is/how_is/pull/63) ([duckinator](https://github.com/duckinator))
|
226
|
+
- Fix "No label" graph label. [\#62](https://github.com/how-is/how_is/pull/62) ([duckinator](https://github.com/duckinator))
|
227
|
+
- Rename export! to export\_file. [\#60](https://github.com/how-is/how_is/pull/60) ([duckinator](https://github.com/duckinator))
|
228
|
+
- Remove remnants of PDF-related stuff. [\#59](https://github.com/how-is/how_is/pull/59) ([duckinator](https://github.com/duckinator))
|
229
|
+
- FUCK YEAH DOCUMENTATION [\#58](https://github.com/how-is/how_is/pull/58) ([duckinator](https://github.com/duckinator))
|
230
|
+
- Specify time period for reports. [\#55](https://github.com/how-is/how_is/pull/55) ([duckinator](https://github.com/duckinator))
|
231
|
+
- SO LONG, PDF REPORTS. YOU WILL NOT BE MISSED. [\#54](https://github.com/how-is/how_is/pull/54) ([duckinator](https://github.com/duckinator))
|
232
|
+
- Document Ruby API. [\#53](https://github.com/how-is/how_is/pull/53) ([duckinator](https://github.com/duckinator))
|
233
|
+
- Update roadmap.markdown [\#47](https://github.com/how-is/how_is/pull/47) ([duckinator](https://github.com/duckinator))
|
234
|
+
- New roadmap. [\#46](https://github.com/how-is/how_is/pull/46) ([duckinator](https://github.com/duckinator))
|
163
235
|
|
164
|
-
|
165
|
-
|
166
|
-
(e.g. adding Rake tasks and improving the generated JSON and HTML).
|
236
|
+
## [v10.0.0](https://github.com/how-is/how_is/tree/v10.0.0) (2016-09-01)
|
237
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v9.0.0...v10.0.0)
|
167
238
|
|
168
|
-
|
169
|
-
GitHub](https://github.com/how-is/how_is/pulls?utf8=&q=is%3Apr%20created%3A2016-11-11..2016-12-11).
|
239
|
+
**Closed issues:**
|
170
240
|
|
171
|
-
|
241
|
+
- --version is broken [\#42](https://github.com/how-is/how_is/issues/42)
|
242
|
+
- report generation fails [\#25](https://github.com/how-is/how_is/issues/25)
|
172
243
|
|
173
|
-
|
174
|
-
([#85](https://github.com/how-is/how_is/pull/85))
|
244
|
+
**Merged pull requests:**
|
175
245
|
|
176
|
-
|
246
|
+
- Parser specs [\#43](https://github.com/how-is/how_is/pull/43) ([duckinator](https://github.com/duckinator))
|
177
247
|
|
178
|
-
|
179
|
-
|
180
|
-
([#82](https://github.com/how-is/how_is/pulls/82),
|
181
|
-
[#84](https://github.com/how-is/how_is/pulls/84))
|
182
|
-
- Handle generating a report on a repository with no open issues.
|
183
|
-
([#92](https://github.com/how-is/how_is/pull/92))
|
184
|
-
- Add Rake tasks to make development easier. ([#86](https://github.com/how-is/how_is/pull/86), [#94](https://github.com/how-is/how_is/pull/94), [#96](https://github.com/how-is/how_is/pull/96))
|
185
|
-
- PR/issue info is now displayed as lists instead of paragraphs. ([#83](https://github.com/how-is/how_is/pull/83))
|
248
|
+
## [v9.0.0](https://github.com/how-is/how_is/tree/v9.0.0) (2016-08-20)
|
249
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v8.0.0...v9.0.0)
|
186
250
|
|
187
|
-
|
251
|
+
**Closed issues:**
|
188
252
|
|
189
|
-
|
190
|
-
|
253
|
+
- Help text is outdated. [\#33](https://github.com/how-is/how_is/issues/33)
|
254
|
+
- `how\_is rubygems/rubygems` raises contract violation [\#32](https://github.com/how-is/how_is/issues/32)
|
255
|
+
- Warning when executing how\_is [\#29](https://github.com/how-is/how_is/issues/29)
|
256
|
+
- Intermittent off-by-one date error in Analyzer\#average\_date\_for test [\#21](https://github.com/how-is/how_is/issues/21)
|
191
257
|
|
192
|
-
|
258
|
+
**Merged pull requests:**
|
193
259
|
|
194
|
-
-
|
260
|
+
- We're not using Cucumber + Aruba. [\#40](https://github.com/how-is/how_is/pull/40) ([duckinator](https://github.com/duckinator))
|
261
|
+
- Option parser refactor [\#39](https://github.com/how-is/how_is/pull/39) ([duckinator](https://github.com/duckinator))
|
262
|
+
- Fix first integration test [\#38](https://github.com/how-is/how_is/pull/38) ([duckinator](https://github.com/duckinator))
|
263
|
+
- Update documentation. [\#35](https://github.com/how-is/how_is/pull/35) ([duckinator](https://github.com/duckinator))
|
264
|
+
- Fix contract error [\#34](https://github.com/how-is/how_is/pull/34) ([duckinator](https://github.com/duckinator))
|
265
|
+
- Use the correct config file in integration tests. [\#31](https://github.com/how-is/how_is/pull/31) ([duckinator](https://github.com/duckinator))
|
266
|
+
- Remove redundant definiton of C. [\#30](https://github.com/how-is/how_is/pull/30) ([duckinator](https://github.com/duckinator))
|
267
|
+
- Fix Analyzer\#average\_age\_for test. [\#28](https://github.com/how-is/how_is/pull/28) ([duckinator](https://github.com/duckinator))
|
268
|
+
- Integration tests [\#27](https://github.com/how-is/how_is/pull/27) ([duckinator](https://github.com/duckinator))
|
195
269
|
|
196
|
-
|
270
|
+
## [v8.0.0](https://github.com/how-is/how_is/tree/v8.0.0) (2016-07-28)
|
271
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v7.0.0...v8.0.0)
|
197
272
|
|
198
|
-
|
199
|
-
|
200
|
-
- Handles generating reports for repositories with no activity in the
|
201
|
-
past month
|
202
|
-
- Tests are improved
|
203
|
-
- Tests no longer make actual network requests
|
273
|
+
## [v7.0.0](https://github.com/how-is/how_is/tree/v7.0.0) (2016-07-28)
|
274
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v6.0.0...v7.0.0)
|
204
275
|
|
205
|
-
|
276
|
+
## [v6.0.0](https://github.com/how-is/how_is/tree/v6.0.0) (2016-07-28)
|
277
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v5.0.0...v6.0.0)
|
206
278
|
|
207
|
-
|
279
|
+
**Merged pull requests:**
|
208
280
|
|
209
|
-
|
281
|
+
- CLI specs [\#24](https://github.com/how-is/how_is/pull/24) ([duckinator](https://github.com/duckinator))
|
282
|
+
- Spelling in OptParser help for --config [\#23](https://github.com/how-is/how_is/pull/23) ([olleolleolle](https://github.com/olleolleolle))
|
210
283
|
|
211
|
-
|
212
|
-
|
284
|
+
## [v5.0.0](https://github.com/how-is/how_is/tree/v5.0.0) (2016-07-21)
|
285
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v4.0.0...v5.0.0)
|
286
|
+
|
287
|
+
## [v4.0.0](https://github.com/how-is/how_is/tree/v4.0.0) (2016-07-19)
|
288
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v3.0.0...v4.0.0)
|
289
|
+
|
290
|
+
**Closed issues:**
|
291
|
+
|
292
|
+
- Monthly summary [\#19](https://github.com/how-is/how_is/issues/19)
|
293
|
+
|
294
|
+
**Merged pull requests:**
|
295
|
+
|
296
|
+
- Add text summary. [\#22](https://github.com/how-is/how_is/pull/22) ([duckinator](https://github.com/duckinator))
|
297
|
+
|
298
|
+
## [v3.0.0](https://github.com/how-is/how_is/tree/v3.0.0) (2016-07-13)
|
299
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v2.0.0...v3.0.0)
|
300
|
+
|
301
|
+
**Closed issues:**
|
302
|
+
|
303
|
+
- Exception when running `how\_is duckinator/how\_is` from master [\#16](https://github.com/how-is/how_is/issues/16)
|
304
|
+
|
305
|
+
**Merged pull requests:**
|
306
|
+
|
307
|
+
- HTML links [\#20](https://github.com/how-is/how_is/pull/20) ([duckinator](https://github.com/duckinator))
|
308
|
+
|
309
|
+
## [v2.0.0](https://github.com/how-is/how_is/tree/v2.0.0) (2016-06-27)
|
310
|
+
[Full Changelog](https://github.com/how-is/how_is/compare/v1.0.0...v2.0.0)
|
311
|
+
|
312
|
+
**Closed issues:**
|
313
|
+
|
314
|
+
- HTML exports [\#13](https://github.com/how-is/how_is/issues/13)
|
315
|
+
- When importing from JSON, don't require repository name as argument. [\#10](https://github.com/how-is/how_is/issues/10)
|
316
|
+
- Allow export to Ruby objects as well as files [\#7](https://github.com/how-is/how_is/issues/7)
|
317
|
+
|
318
|
+
**Merged pull requests:**
|
319
|
+
|
320
|
+
- HTML graphs [\#17](https://github.com/how-is/how_is/pull/17) ([duckinator](https://github.com/duckinator))
|
321
|
+
|
322
|
+
## [v1.0.0](https://github.com/how-is/how_is/tree/v1.0.0) (2016-06-22)
|
323
|
+
**Closed issues:**
|
324
|
+
|
325
|
+
- Fix failing tests [\#15](https://github.com/how-is/how_is/issues/15)
|
326
|
+
- Update README [\#11](https://github.com/how-is/how_is/issues/11)
|
327
|
+
- Find a better name [\#2](https://github.com/how-is/how_is/issues/2)
|
328
|
+
- Metrics to track [\#1](https://github.com/how-is/how_is/issues/1)
|
329
|
+
|
330
|
+
**Merged pull requests:**
|
331
|
+
|
332
|
+
- waffle.io Badge [\#14](https://github.com/how-is/how_is/pull/14) ([waffle-iron](https://github.com/waffle-iron))
|
333
|
+
- Executable: Fail faster, use abort [\#9](https://github.com/how-is/how_is/pull/9) ([olleolleolle](https://github.com/olleolleolle))
|
334
|
+
- Rotate images with MiniMagick [\#5](https://github.com/how-is/how_is/pull/5) ([olleolleolle](https://github.com/olleolleolle))
|
335
|
+
|
336
|
+
|
337
|
+
|
338
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/Gemfile
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
source
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
# how_is only supports Ruby versions receiving general bug fixes ("normal
|
6
|
+
# maintenance"). This should be updated when a Ruby version goes into security
|
7
|
+
# maintenance. Ruby maintenance: https://www.ruby-lang.org/en/downloads/branches/
|
8
|
+
ruby "~> 2.3"
|
4
9
|
|
5
10
|
# Specify your gem's dependencies in how_is.gemspec
|
6
11
|
gemspec
|
12
|
+
|
13
|
+
# TODO: move Pry back to gemspec, once a version is released that does not rely
|
14
|
+
# on an ancient version of Slop. Reason: gemspecs can not handle git deps.
|
15
|
+
group :development do
|
16
|
+
gem "pry", git: "https://github.com/pry/pry.git"
|
17
|
+
end
|
data/Rakefile
CHANGED
@@ -1,22 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
3
|
+
require "bundler/gem_tasks"
|
4
|
+
require "rspec/core/rake_task"
|
5
|
+
require "timecop"
|
6
|
+
require "./spec/vcr_helper.rb"
|
7
|
+
require "how_is"
|
8
8
|
|
9
9
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
10
10
|
# Warning.warn() was added in Ruby 2.4.0, so don't use -w on older versions.
|
11
|
-
t.ruby_opts =
|
11
|
+
t.ruby_opts = "-w -r./spec/capture_warnings.rb" if RUBY_VERSION >= "2.4.0"
|
12
12
|
end
|
13
13
|
|
14
14
|
task :default => :spec
|
15
15
|
|
16
|
+
task :generate_changelog do
|
17
|
+
sh "github_changelog_generator"
|
18
|
+
end
|
19
|
+
|
16
20
|
# Helper functions used later in the Rakefile.
|
17
21
|
class HelperFunctions
|
18
22
|
def self.freeze_time(&_block)
|
19
|
-
date = DateTime.parse(
|
23
|
+
date = DateTime.parse("2016-11-01").new_offset(0)
|
20
24
|
Timecop.freeze(date) do
|
21
25
|
yield
|
22
26
|
end
|
@@ -31,37 +35,52 @@ class HelperFunctions
|
|
31
35
|
format: format,
|
32
36
|
}
|
33
37
|
|
34
|
-
cassette = repository.tr(
|
38
|
+
cassette = repository.tr("/", "-")
|
35
39
|
VCR.use_cassette(cassette) do
|
36
40
|
report = HowIs.generate_report(**options)
|
37
41
|
end
|
38
42
|
|
39
43
|
filename = "#{cassette}-report.#{format}"
|
40
44
|
path = File.expand_path("spec/data/#{filename}", __dir__)
|
41
|
-
File.open(path,
|
45
|
+
File.open(path, "w") do |f|
|
42
46
|
f.puts report
|
43
47
|
# HACK: Trailing newline is missing, otherwise.
|
44
|
-
f.puts if format ==
|
48
|
+
f.puts if format == "html"
|
45
49
|
end
|
46
50
|
end
|
47
51
|
end
|
48
52
|
end
|
49
53
|
|
50
54
|
namespace :generate_reports do
|
51
|
-
desc
|
55
|
+
desc "Generate example HTML reports."
|
52
56
|
task :html do
|
53
57
|
%w[
|
54
58
|
how-is/example-repository
|
55
59
|
how-is/example-empty-repository
|
56
60
|
].each do |repo|
|
57
|
-
HelperFunctions.generate_report(repo,
|
61
|
+
HelperFunctions.generate_report(repo, "html")
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
61
|
-
desc
|
65
|
+
desc "Generate example JSON reports."
|
62
66
|
task :json do
|
63
|
-
HelperFunctions.generate_report(
|
67
|
+
HelperFunctions.generate_report("how-is/example-repository", "json")
|
64
68
|
end
|
65
69
|
|
66
70
|
task :all => [:html, :json]
|
67
71
|
end
|
72
|
+
|
73
|
+
desc "List new contributors. Lists committers with no earlier commits then "\
|
74
|
+
"given since_date (as %Y-%m-%d). Defaults to first of current month."
|
75
|
+
task :new_contributors, [:user, :repo, :since_date] => [] do |_t, args|
|
76
|
+
require "how_is/contributions"
|
77
|
+
user = args[:user] || "how-is"
|
78
|
+
repo = args[:repo] || "how_is"
|
79
|
+
since_date = args[:since_date] || Time.now.strftime("%Y-%m-01")
|
80
|
+
|
81
|
+
puts "New committers:"
|
82
|
+
puts Contributions.new(github: Github.new(auto_pagination: true),
|
83
|
+
since_date: since_date,
|
84
|
+
user: user,
|
85
|
+
repo: repo).new_contributors
|
86
|
+
end
|