stove 1.1.2 → 2.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -2
  3. data/CHANGELOG.md +16 -0
  4. data/README.md +41 -29
  5. data/Rakefile +15 -0
  6. data/bin/bake +1 -2
  7. data/features/actions/bump.feature +22 -0
  8. data/features/actions/changelog.feature +45 -0
  9. data/features/actions/dev.feature +18 -0
  10. data/features/actions/upload.feature +48 -0
  11. data/features/plugins/git.feature +24 -0
  12. data/features/rake.feature +1 -2
  13. data/features/step_definitions/cli_steps.rb +1 -27
  14. data/features/step_definitions/{community_site_steps.rb → community_steps.rb} +9 -5
  15. data/features/step_definitions/config_steps.rb +24 -0
  16. data/features/step_definitions/cookbook_steps.rb +28 -6
  17. data/features/step_definitions/cucumber_steps.rb +12 -0
  18. data/features/step_definitions/git_steps.rb +10 -7
  19. data/features/support/env.rb +12 -28
  20. data/features/support/stove/git.rb +48 -0
  21. data/lib/stove.rb +102 -19
  22. data/lib/stove/actions/base.rb +21 -0
  23. data/lib/stove/actions/bump.rb +25 -0
  24. data/lib/stove/actions/changelog.rb +71 -0
  25. data/lib/stove/actions/dev.rb +22 -0
  26. data/lib/stove/actions/finish.rb +8 -0
  27. data/lib/stove/actions/start.rb +7 -0
  28. data/lib/stove/actions/upload.rb +27 -0
  29. data/lib/stove/cli.rb +107 -79
  30. data/lib/stove/community.rb +124 -0
  31. data/lib/stove/config.rb +62 -13
  32. data/lib/stove/cookbook.rb +76 -238
  33. data/lib/stove/cookbook/metadata.rb +16 -11
  34. data/lib/stove/error.rb +13 -107
  35. data/lib/stove/filter.rb +59 -0
  36. data/lib/stove/jira.rb +74 -30
  37. data/lib/stove/middlewares/chef_authentication.rb +60 -0
  38. data/lib/stove/middlewares/exceptions.rb +17 -0
  39. data/lib/stove/mixins/filterable.rb +11 -0
  40. data/lib/stove/mixins/insideable.rb +13 -0
  41. data/lib/stove/mixins/instanceable.rb +23 -0
  42. data/lib/stove/mixins/loggable.rb +32 -0
  43. data/lib/stove/mixins/optionable.rb +41 -0
  44. data/lib/stove/mixins/validatable.rb +7 -0
  45. data/lib/stove/packager.rb +23 -22
  46. data/lib/stove/plugins/base.rb +35 -0
  47. data/lib/stove/plugins/git.rb +71 -0
  48. data/lib/stove/plugins/github.rb +108 -0
  49. data/lib/stove/plugins/jira.rb +72 -0
  50. data/lib/stove/rake_task.rb +56 -37
  51. data/lib/stove/runner.rb +84 -0
  52. data/lib/stove/util.rb +56 -0
  53. data/lib/stove/validator.rb +67 -0
  54. data/lib/stove/version.rb +1 -1
  55. data/locales/en.yml +231 -0
  56. data/stove.gemspec +11 -11
  57. metadata +85 -67
  58. data/features/changelog.feature +0 -22
  59. data/features/cli.feature +0 -11
  60. data/features/devodd.feature +0 -19
  61. data/features/git.feature +0 -34
  62. data/features/upload.feature +0 -40
  63. data/lib/stove/community_site.rb +0 -85
  64. data/lib/stove/formatter.rb +0 -7
  65. data/lib/stove/formatter/base.rb +0 -32
  66. data/lib/stove/formatter/human.rb +0 -9
  67. data/lib/stove/formatter/silent.rb +0 -10
  68. data/lib/stove/git.rb +0 -82
  69. data/lib/stove/github.rb +0 -43
  70. data/lib/stove/logger.rb +0 -56
  71. data/lib/stove/uploader.rb +0 -64
  72. data/spec/support/community_site.rb +0 -33
  73. data/spec/support/git.rb +0 -52
data/stove.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Stove::VERSION
9
9
  spec.authors = ['Seth Vargo']
10
10
  spec.email = ['sethvargo@gmail.com']
11
- spec.description = %q{A simple gem for packaging, releasing, and sanity-checking a community cookbook}
12
- spec.summary = %q{A simple gem for packaging, releasing, and sanity-checking an Opscode community cookbook. This gem automatically packages the appropiate files, syncs with JIRA issues (if applicable), and automatically generates CHANGELOGs.}
11
+ spec.description = %q|A simple gem for packaging, releasing, and sanity-checking a community cookbook|
12
+ spec.summary = %q|A simple gem for packaging, releasing, and sanity-checking an Opscode community cookbook. This gem automatically packages the appropiate files, syncs with JIRA issues (if applicable), and automatically generates CHANGELOGs.|
13
13
  spec.homepage = 'https://github.com/sethvargo/stove'
14
14
  spec.license = 'Apache 2.0'
15
15
 
@@ -18,19 +18,19 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'httparty', '~> 0.11'
22
- spec.add_dependency 'httmultiparty', '~> 0.3'
23
- spec.add_dependency 'jiralicious', '~> 0.3'
21
+ # Runtime dependencies
22
+ spec.add_dependency 'faraday', '~> 0.8'
23
+ spec.add_dependency 'faraday_middleware', '~> 0.9'
24
+ spec.add_dependency 'i18n', '~> 0.6'
25
+ spec.add_dependency 'log4r', '~> 1.1'
24
26
  spec.add_dependency 'minitar', '~> 0.5'
25
27
  spec.add_dependency 'mixlib-authentication', '~> 1.3'
26
- spec.add_dependency 'octokit', '~> 2.2'
27
- spec.add_dependency 'retryable', '~> 1.3'
28
+ spec.add_dependency 'octokit', '~> 2.7'
28
29
  spec.add_dependency 'solve', '~> 0.8'
29
30
 
30
- spec.add_development_dependency 'bundler', '~> 1.3'
31
- spec.add_development_dependency 'rake'
32
-
33
31
  spec.add_development_dependency 'aruba', '~> 0.5'
34
- spec.add_development_dependency 'community-zero', '~> 1.1'
32
+ spec.add_development_dependency 'bundler', '~> 1.3'
33
+ spec.add_development_dependency 'community-zero', '~> 2.0'
34
+ spec.add_development_dependency 'rake'
35
35
  spec.add_development_dependency 'rspec', '~> 2.14'
36
36
  end
metadata CHANGED
@@ -1,113 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stove
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 2.0.0.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Vargo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-06 00:00:00.000000000 Z
11
+ date: 2013-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: httparty
14
+ name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0.11'
19
+ version: '0.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '0.11'
26
+ version: '0.8'
27
27
  - !ruby/object:Gem::Dependency
28
- name: httmultiparty
28
+ name: faraday_middleware
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0.3'
33
+ version: '0.9'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0.3'
40
+ version: '0.9'
41
41
  - !ruby/object:Gem::Dependency
42
- name: jiralicious
42
+ name: i18n
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0.3'
47
+ version: '0.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0.3'
54
+ version: '0.6'
55
55
  - !ruby/object:Gem::Dependency
56
- name: minitar
56
+ name: log4r
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0.5'
61
+ version: '1.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
- version: '0.5'
68
+ version: '1.1'
69
69
  - !ruby/object:Gem::Dependency
70
- name: mixlib-authentication
70
+ name: minitar
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: '1.3'
75
+ version: '0.5'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
- version: '1.3'
82
+ version: '0.5'
83
83
  - !ruby/object:Gem::Dependency
84
- name: octokit
84
+ name: mixlib-authentication
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ~>
88
88
  - !ruby/object:Gem::Version
89
- version: '2.2'
89
+ version: '1.3'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ~>
95
95
  - !ruby/object:Gem::Version
96
- version: '2.2'
96
+ version: '1.3'
97
97
  - !ruby/object:Gem::Dependency
98
- name: retryable
98
+ name: octokit
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: '1.3'
103
+ version: '2.7'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: '1.3'
110
+ version: '2.7'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: solve
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -123,61 +123,61 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.8'
125
125
  - !ruby/object:Gem::Dependency
126
- name: bundler
126
+ name: aruba
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: '1.3'
131
+ version: '0.5'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: '1.3'
138
+ version: '0.5'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rake
140
+ name: bundler
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ~>
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: '1.3'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ~>
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: '1.3'
153
153
  - !ruby/object:Gem::Dependency
154
- name: aruba
154
+ name: community-zero
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ~>
158
158
  - !ruby/object:Gem::Version
159
- version: '0.5'
159
+ version: '2.0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ~>
165
165
  - !ruby/object:Gem::Version
166
- version: '0.5'
166
+ version: '2.0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: community-zero
168
+ name: rake
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ~>
171
+ - - '>='
172
172
  - !ruby/object:Gem::Version
173
- version: '1.1'
173
+ version: '0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ~>
178
+ - - '>='
179
179
  - !ruby/object:Gem::Version
180
- version: '1.1'
180
+ version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: rspec
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -209,40 +209,57 @@ files:
209
209
  - README.md
210
210
  - Rakefile
211
211
  - bin/bake
212
- - features/changelog.feature
213
- - features/cli.feature
214
- - features/devodd.feature
215
- - features/git.feature
212
+ - features/actions/bump.feature
213
+ - features/actions/changelog.feature
214
+ - features/actions/dev.feature
215
+ - features/actions/upload.feature
216
+ - features/plugins/git.feature
216
217
  - features/rake.feature
217
218
  - features/step_definitions/cli_steps.rb
218
- - features/step_definitions/community_site_steps.rb
219
+ - features/step_definitions/community_steps.rb
220
+ - features/step_definitions/config_steps.rb
219
221
  - features/step_definitions/cookbook_steps.rb
222
+ - features/step_definitions/cucumber_steps.rb
220
223
  - features/step_definitions/git_steps.rb
221
224
  - features/support/env.rb
222
225
  - features/support/stove.pem
223
- - features/upload.feature
226
+ - features/support/stove/git.rb
224
227
  - lib/stove.rb
228
+ - lib/stove/actions/base.rb
229
+ - lib/stove/actions/bump.rb
230
+ - lib/stove/actions/changelog.rb
231
+ - lib/stove/actions/dev.rb
232
+ - lib/stove/actions/finish.rb
233
+ - lib/stove/actions/start.rb
234
+ - lib/stove/actions/upload.rb
225
235
  - lib/stove/cli.rb
226
- - lib/stove/community_site.rb
236
+ - lib/stove/community.rb
227
237
  - lib/stove/config.rb
228
238
  - lib/stove/cookbook.rb
229
239
  - lib/stove/cookbook/metadata.rb
230
240
  - lib/stove/error.rb
231
- - lib/stove/formatter.rb
232
- - lib/stove/formatter/base.rb
233
- - lib/stove/formatter/human.rb
234
- - lib/stove/formatter/silent.rb
235
- - lib/stove/git.rb
236
- - lib/stove/github.rb
241
+ - lib/stove/filter.rb
237
242
  - lib/stove/jira.rb
238
- - lib/stove/logger.rb
239
243
  - lib/stove/mash.rb
244
+ - lib/stove/middlewares/chef_authentication.rb
245
+ - lib/stove/middlewares/exceptions.rb
246
+ - lib/stove/mixins/filterable.rb
247
+ - lib/stove/mixins/insideable.rb
248
+ - lib/stove/mixins/instanceable.rb
249
+ - lib/stove/mixins/loggable.rb
250
+ - lib/stove/mixins/optionable.rb
251
+ - lib/stove/mixins/validatable.rb
240
252
  - lib/stove/packager.rb
253
+ - lib/stove/plugins/base.rb
254
+ - lib/stove/plugins/git.rb
255
+ - lib/stove/plugins/github.rb
256
+ - lib/stove/plugins/jira.rb
241
257
  - lib/stove/rake_task.rb
242
- - lib/stove/uploader.rb
258
+ - lib/stove/runner.rb
259
+ - lib/stove/util.rb
260
+ - lib/stove/validator.rb
243
261
  - lib/stove/version.rb
244
- - spec/support/community_site.rb
245
- - spec/support/git.rb
262
+ - locales/en.yml
246
263
  - stove.gemspec
247
264
  homepage: https://github.com/sethvargo/stove
248
265
  licenses:
@@ -259,30 +276,31 @@ required_ruby_version: !ruby/object:Gem::Requirement
259
276
  version: '0'
260
277
  required_rubygems_version: !ruby/object:Gem::Requirement
261
278
  requirements:
262
- - - '>='
279
+ - - '>'
263
280
  - !ruby/object:Gem::Version
264
- version: '0'
281
+ version: 1.3.1
265
282
  requirements: []
266
283
  rubyforge_project:
267
- rubygems_version: 2.0.3
284
+ rubygems_version: 2.2.0
268
285
  signing_key:
269
286
  specification_version: 4
270
287
  summary: A simple gem for packaging, releasing, and sanity-checking an Opscode community
271
288
  cookbook. This gem automatically packages the appropiate files, syncs with JIRA
272
289
  issues (if applicable), and automatically generates CHANGELOGs.
273
290
  test_files:
274
- - features/changelog.feature
275
- - features/cli.feature
276
- - features/devodd.feature
277
- - features/git.feature
291
+ - features/actions/bump.feature
292
+ - features/actions/changelog.feature
293
+ - features/actions/dev.feature
294
+ - features/actions/upload.feature
295
+ - features/plugins/git.feature
278
296
  - features/rake.feature
279
297
  - features/step_definitions/cli_steps.rb
280
- - features/step_definitions/community_site_steps.rb
298
+ - features/step_definitions/community_steps.rb
299
+ - features/step_definitions/config_steps.rb
281
300
  - features/step_definitions/cookbook_steps.rb
301
+ - features/step_definitions/cucumber_steps.rb
282
302
  - features/step_definitions/git_steps.rb
283
303
  - features/support/env.rb
284
304
  - features/support/stove.pem
285
- - features/upload.feature
286
- - spec/support/community_site.rb
287
- - spec/support/git.rb
305
+ - features/support/stove/git.rb
288
306
  has_rdoc:
@@ -1,22 +0,0 @@
1
- Feature: Changelog
2
- Background:
3
- * the CLI options are all off
4
- * I have a cookbook named "bacon"
5
-
6
- Scenario: --no-changelog
7
- * I successfully run `bake 1.0.0 --no-changelog`
8
-
9
- Scenario: --changelog
10
- * the environment variable EDITOR is "cat"
11
- * I successfully run `bake 1.0.0 --changelog`
12
- * the file "CHANGELOG.md" should contain:
13
- """
14
- v1.0.0
15
- ------
16
- _Enter CHANGELOG for bacon (1.0.0) here_
17
- """
18
-
19
- Scenario: bad $EDITOR
20
- * the environment variable EDITOR is "not-a-real-shell-command"
21
- * I run `bake 1.0.0 --changelog`
22
- * the exit status will be "Error"
data/features/cli.feature DELETED
@@ -1,11 +0,0 @@
1
- Feature: Cli
2
- Background:
3
- * I have a cookbook named "bacon"
4
-
5
- Scenario: no version
6
- * I run `bake`
7
- * the exit status will be "InvalidVersionError"
8
-
9
- Scenario: invalid version
10
- * I run `bake 1.2`
11
- * the exit status will be "InvalidVersionError"
@@ -1,19 +0,0 @@
1
- Feature: Devodd
2
- Background:
3
- * the CLI options are all off
4
- * I have a cookbook named "bacon"
5
-
6
- Scenario: --no-devodd
7
- * I successfully run `bake 1.0.0 --no-devodd`
8
-
9
- Scenario: --devodd
10
- * I successfully run `bake 1.0.0 --devodd`
11
- * the file "metadata.rb" should contain:
12
- """
13
- version '1.0.1'
14
- """
15
-
16
- Scenario: --git --devodd
17
- * I have a cookbook named "bacon" with git support
18
- * I successfully run `bake 1.0.0 --devodd --git`
19
- * the git remote will have the commit "Version bump to v1.0.1"
data/features/git.feature DELETED
@@ -1,34 +0,0 @@
1
- Feature: Git
2
- Background:
3
- * the CLI options are all off
4
-
5
- Scenario: --no-git
6
- * I have a cookbook named "bacon" with git support
7
- * I successfully run `bake 1.0.0 --no-git`
8
- * the git remote will not have the commit "Version bump to v1.0.0"
9
- * the git remote will not have the tag "v1.0.0"
10
-
11
- Scenario: --git
12
- * I have a cookbook named "bacon" with git support
13
- * I successfully run `bake 1.0.0 --git`
14
- * the git remote will have the commit "Version bump to v1.0.0"
15
- * the git remote will have the tag "v1.0.0"
16
-
17
- Scenario: A dirty git repo
18
- * I have a cookbook named "bacon" with git support
19
- * I append to "CHANGELOG.md" with "# A change"
20
- * I run `bake 1.0.0 --git`
21
- * the git remote will not have the commit "Version bump to v1.0.0"
22
- * the git remote will not have the tag "v1.0.0"
23
- * the exit status will be "GitError::DirtyRepo"
24
-
25
- Scenario: Not a git repo
26
- * I have a cookbook named "bacon"
27
- * I run `bake 1.0.0 --git`
28
- * the exit status will be "GitError::NotARepo"
29
-
30
- Scenario: Remote repository out of sync
31
- * I have a cookbook named "bacon" with git support
32
- * the remote repository has additional commits
33
- * I run `bake 1.0.0 --git`
34
- * the exit status will be "GitError::OutOfSync"