knife-community 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/.travis.yml +6 -3
- data/CHANGELOG.md +11 -0
- data/Gemfile +7 -0
- data/README.md +3 -0
- data/Rakefile +3 -2
- data/features/support/env.rb +4 -5
- data/knife-community.gemspec +6 -9
- data/lib/chef/knife/community_release.rb +25 -5
- data/lib/knife-community/version.rb +1 -1
- metadata +30 -71
data/.travis.yml
CHANGED
@@ -2,7 +2,10 @@ language: ruby
|
|
2
2
|
rvm:
|
3
3
|
- 1.9.2
|
4
4
|
- 1.9.3
|
5
|
+
bundler_args: --without=localdev
|
5
6
|
env:
|
6
|
-
- CHEF_VERSION=
|
7
|
-
- CHEF_VERSION=10.
|
8
|
-
- CHEF_VERSION=10.
|
7
|
+
- CHEF_VERSION=10.20.0
|
8
|
+
- CHEF_VERSION=10.22.0
|
9
|
+
- CHEF_VERSION=10.24.0
|
10
|
+
- CHEF_VERSION=11.2.0
|
11
|
+
- CHEF_VERSION=11.4.0
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
|
2
|
+
# v0.1.0 - February 26, 2013
|
3
|
+
|
4
|
+
- BugFix: Dropped a bunch older Chef versions due to a JSON dependency nightmare, passes tests
|
5
|
+
- Enhancement: Moved to a better SemVer version number, to reflect features vs patches
|
6
|
+
- Enhancement: Added mods from @schisamo, user flags for git push and share, preserves default behavior
|
7
|
+
- **NOTE**: a user prompt has been added to the community release. Use `-y` to bypass
|
8
|
+
|
9
|
+
# v0.0.1 - September 17, 2012
|
10
|
+
|
11
|
+
- Initial version, does a lot of the "heavy lifting" and accomplishes the task
|
data/Gemfile
CHANGED
@@ -1,4 +1,11 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
+
# These will not be used in travis builds, as they are more human-developer oriented
|
4
|
+
group :localdev do
|
5
|
+
gem 'travis-lint', '~> 1.4'
|
6
|
+
gem 'guard-rspec', '~> 2.4'
|
7
|
+
gem 'guard-cucumber', '~> 1.2'
|
8
|
+
end
|
9
|
+
|
3
10
|
# Specify your gem's dependencies in knife-community.gemspec
|
4
11
|
gemspec
|
data/README.md
CHANGED
@@ -70,12 +70,15 @@ Flags
|
|
70
70
|
|
71
71
|
This is a flow that some adopt by having even-only numbered releases, utilizing the [odd numbered ones for development][wiki:oddver].
|
72
72
|
|
73
|
+
There are other flags, run `knife community release -h` to see their specifications.
|
73
74
|
|
74
75
|
Some good ideas while working on a cookbook
|
75
76
|
-------------------------------------------
|
76
77
|
|
77
78
|
Creating a `CHANGELOG.md` that details a short message about any changes included in each release is really helpful to anyone looking at your updated cookbook and seeing if it addresses a problem they have, without delving deeper into the code.
|
78
79
|
|
80
|
+
See the CHANGELOG for this project to get an idea of how to write one.
|
81
|
+
|
79
82
|
Updating a `TODO.md` file if there are outstanding known issues, planned work for the next version, etc. A TODO file also helps anyone else in the community try to tackle a problem you haven't figured out or gotten to yet, so they can issue a pull request for your cookbook.
|
80
83
|
|
81
84
|
Follow [Semantic Versioning][semver] when choosing which version number to increment to. Start your cookbook at 0.1.0, and increment from there, until you are confident enough in a 1.0.0 version.
|
data/Rakefile
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
|
4
|
-
task :default => [:features]
|
4
|
+
task :default => [:features, :tailor]
|
5
5
|
|
6
6
|
# https://github.com/turboladen/tailor
|
7
7
|
require 'tailor/rake_task'
|
8
8
|
Tailor::RakeTask.new do |task|
|
9
|
-
task.file_set
|
9
|
+
task.file_set 'lib/**/*.rb', :code do |style|
|
10
10
|
style.max_line_length 160, level: :warn
|
11
|
+
style.max_code_lines_in_method 40, level: :warn
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
data/features/support/env.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
# Set up the environment for testing
|
2
2
|
require 'aruba/cucumber'
|
3
|
-
# require 'aruba-doubles/cucumber'
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
Before do
|
5
|
+
@aruba_timeout_seconds = 5
|
6
|
+
end
|
8
7
|
|
9
|
-
After do |s|
|
8
|
+
After do |s|
|
10
9
|
# Tell Cucumber to quit after this scenario is done - if it failed.
|
11
10
|
# This is useful to inspect the 'tmp/aruba' directory before any other
|
12
11
|
# steps are executed and clear it out.
|
data/knife-community.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
chef_version = ENV.key?('CHEF_VERSION') ? "= #{ENV['CHEF_VERSION']}" : ['
|
2
|
+
chef_version = ENV.key?('CHEF_VERSION') ? "= #{ENV['CHEF_VERSION']}" : ['>= 10', '<= 12']
|
3
3
|
require File.expand_path('../lib/knife-community/version', __FILE__)
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
@@ -27,15 +27,12 @@ Gem::Specification.new do |gem|
|
|
27
27
|
|
28
28
|
gem.required_ruby_version = '>= 1.9.2'
|
29
29
|
|
30
|
-
gem.add_development_dependency 'rake', '~> 0.9'
|
31
|
-
gem.add_development_dependency 'rspec', '~> 2.11.0'
|
32
|
-
gem.add_development_dependency 'cucumber', '~> 1'
|
33
30
|
gem.add_development_dependency 'aruba', '~> 0.4'
|
34
|
-
gem.add_development_dependency '
|
35
|
-
gem.add_development_dependency '
|
36
|
-
gem.add_development_dependency '
|
37
|
-
gem.add_development_dependency '
|
38
|
-
gem.add_development_dependency '
|
31
|
+
gem.add_development_dependency 'cucumber', '~> 1'
|
32
|
+
gem.add_development_dependency 'guard', '~> 1.6'
|
33
|
+
gem.add_development_dependency 'rake', '~> 10'
|
34
|
+
gem.add_development_dependency 'rspec', '~> 2.11'
|
35
|
+
gem.add_development_dependency 'tailor', '= 1.1.3' # See https://github.com/turboladen/tailor/issues/129
|
39
36
|
|
40
37
|
gem.authors = ["Mike Fiedler"]
|
41
38
|
gem.email = ["miketheman@gmail.com"]
|
@@ -40,6 +40,18 @@ module KnifeCommunity
|
|
40
40
|
:boolean => true,
|
41
41
|
:description => "Odd-numbered development cycle. Bump minor version & commit for development"
|
42
42
|
|
43
|
+
option :git_push,
|
44
|
+
:long => "--[no-]git-push",
|
45
|
+
:boolean => true,
|
46
|
+
:default => true,
|
47
|
+
:description => "Indicates whether the commits and tags should be pushed to pushed to the default git remote."
|
48
|
+
|
49
|
+
option :site_share,
|
50
|
+
:long => "--[no-]site-share",
|
51
|
+
:boolean => true,
|
52
|
+
:default => true,
|
53
|
+
:description => "Indicates whether the cookbook should be pushed to the community site."
|
54
|
+
|
43
55
|
def run
|
44
56
|
self.config = Chef::Config.merge!(config)
|
45
57
|
validate_args
|
@@ -59,13 +71,21 @@ module KnifeCommunity
|
|
59
71
|
set_new_cb_version
|
60
72
|
commit_new_cb_version
|
61
73
|
tag_new_cb_version
|
62
|
-
git_push_commits
|
63
|
-
git_push_tags
|
64
74
|
|
65
|
-
|
75
|
+
if config[:git_push]
|
76
|
+
git_push_commits
|
77
|
+
git_push_tags
|
78
|
+
end
|
66
79
|
|
67
|
-
|
68
|
-
|
80
|
+
if config[:site_share]
|
81
|
+
confirm_share_msg = "Shall I release version #{@version} of the"
|
82
|
+
confirm_share_msg << " #{@cb_name} cookbook to the community site? (Y/N) "
|
83
|
+
if config[:yes] || (ask_question(confirm_share_msg).chomp.upcase == "Y")
|
84
|
+
share_new_version
|
85
|
+
ui.msg "Version #{@version} of the #{@cb_name} cookbook has been released!"
|
86
|
+
ui.msg "Check it out at http://ckbk.it/#{@cb_name}"
|
87
|
+
end
|
88
|
+
end
|
69
89
|
|
70
90
|
# @TODO: Increment the current version to the next available odd number
|
71
91
|
# algo = n + 1 + (n % 2)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-community
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,24 +9,30 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '10'
|
22
|
+
- - <=
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '12'
|
22
25
|
type: :runtime
|
23
26
|
prerelease: false
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
25
28
|
none: false
|
26
29
|
requirements:
|
27
|
-
- -
|
30
|
+
- - ! '>='
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: '10'
|
33
|
+
- - <=
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '12'
|
30
36
|
- !ruby/object:Gem::Dependency
|
31
37
|
name: mixlib-shellout
|
32
38
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,54 +81,6 @@ dependencies:
|
|
75
81
|
- - ~>
|
76
82
|
- !ruby/object:Gem::Version
|
77
83
|
version: '0.4'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: rake
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0.9'
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0.9'
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: rspec
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ~>
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: 2.11.0
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 2.11.0
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: cucumber
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ~>
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '1'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '1'
|
126
84
|
- !ruby/object:Gem::Dependency
|
127
85
|
name: aruba
|
128
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,13 +98,13 @@ dependencies:
|
|
140
98
|
- !ruby/object:Gem::Version
|
141
99
|
version: '0.4'
|
142
100
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
101
|
+
name: cucumber
|
144
102
|
requirement: !ruby/object:Gem::Requirement
|
145
103
|
none: false
|
146
104
|
requirements:
|
147
105
|
- - ~>
|
148
106
|
- !ruby/object:Gem::Version
|
149
|
-
version: '1
|
107
|
+
version: '1'
|
150
108
|
type: :development
|
151
109
|
prerelease: false
|
152
110
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -154,15 +112,15 @@ dependencies:
|
|
154
112
|
requirements:
|
155
113
|
- - ~>
|
156
114
|
- !ruby/object:Gem::Version
|
157
|
-
version: '1
|
115
|
+
version: '1'
|
158
116
|
- !ruby/object:Gem::Dependency
|
159
|
-
name:
|
117
|
+
name: guard
|
160
118
|
requirement: !ruby/object:Gem::Requirement
|
161
119
|
none: false
|
162
120
|
requirements:
|
163
121
|
- - ~>
|
164
122
|
- !ruby/object:Gem::Version
|
165
|
-
version: '1.
|
123
|
+
version: '1.6'
|
166
124
|
type: :development
|
167
125
|
prerelease: false
|
168
126
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -170,15 +128,15 @@ dependencies:
|
|
170
128
|
requirements:
|
171
129
|
- - ~>
|
172
130
|
- !ruby/object:Gem::Version
|
173
|
-
version: '1.
|
131
|
+
version: '1.6'
|
174
132
|
- !ruby/object:Gem::Dependency
|
175
|
-
name:
|
133
|
+
name: rake
|
176
134
|
requirement: !ruby/object:Gem::Requirement
|
177
135
|
none: false
|
178
136
|
requirements:
|
179
137
|
- - ~>
|
180
138
|
- !ruby/object:Gem::Version
|
181
|
-
version: '
|
139
|
+
version: '10'
|
182
140
|
type: :development
|
183
141
|
prerelease: false
|
184
142
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -186,15 +144,15 @@ dependencies:
|
|
186
144
|
requirements:
|
187
145
|
- - ~>
|
188
146
|
- !ruby/object:Gem::Version
|
189
|
-
version: '
|
147
|
+
version: '10'
|
190
148
|
- !ruby/object:Gem::Dependency
|
191
|
-
name:
|
149
|
+
name: rspec
|
192
150
|
requirement: !ruby/object:Gem::Requirement
|
193
151
|
none: false
|
194
152
|
requirements:
|
195
153
|
- - ~>
|
196
154
|
- !ruby/object:Gem::Version
|
197
|
-
version: '
|
155
|
+
version: '2.11'
|
198
156
|
type: :development
|
199
157
|
prerelease: false
|
200
158
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -202,23 +160,23 @@ dependencies:
|
|
202
160
|
requirements:
|
203
161
|
- - ~>
|
204
162
|
- !ruby/object:Gem::Version
|
205
|
-
version: '
|
163
|
+
version: '2.11'
|
206
164
|
- !ruby/object:Gem::Dependency
|
207
|
-
name:
|
165
|
+
name: tailor
|
208
166
|
requirement: !ruby/object:Gem::Requirement
|
209
167
|
none: false
|
210
168
|
requirements:
|
211
|
-
- -
|
169
|
+
- - '='
|
212
170
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
171
|
+
version: 1.1.3
|
214
172
|
type: :development
|
215
173
|
prerelease: false
|
216
174
|
version_requirements: !ruby/object:Gem::Requirement
|
217
175
|
none: false
|
218
176
|
requirements:
|
219
|
-
- -
|
177
|
+
- - '='
|
220
178
|
- !ruby/object:Gem::Version
|
221
|
-
version:
|
179
|
+
version: 1.1.3
|
222
180
|
description: The centralized location for sharing cookbooks is the Community Site,
|
223
181
|
this is a process helper to produce a repeatable method for releasing cookbooks.
|
224
182
|
email:
|
@@ -229,6 +187,7 @@ extra_rdoc_files: []
|
|
229
187
|
files:
|
230
188
|
- .gitignore
|
231
189
|
- .travis.yml
|
190
|
+
- CHANGELOG.md
|
232
191
|
- Gemfile
|
233
192
|
- Guardfile
|
234
193
|
- LICENSE
|
@@ -260,10 +219,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
260
219
|
version: '0'
|
261
220
|
segments:
|
262
221
|
- 0
|
263
|
-
hash: -
|
222
|
+
hash: -2662573135951615840
|
264
223
|
requirements: []
|
265
224
|
rubyforge_project:
|
266
|
-
rubygems_version: 1.8.
|
225
|
+
rubygems_version: 1.8.25
|
267
226
|
signing_key:
|
268
227
|
specification_version: 3
|
269
228
|
summary: A Knife plugin to assist with deploying completed Chef cookbooks to the Community
|