stove 4.1.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 157cfee1ba9ff810a7840cb9ac6d0f2ab396e2cc
4
- data.tar.gz: 622404eec72bb2764aa17ed7a5999fccec3f8ef1
3
+ metadata.gz: 6a5b3636377d2a72d01138c74bc0d1a02c4019b5
4
+ data.tar.gz: f2252e862624ad4862bec9da34fc2160d0aa6995
5
5
  SHA512:
6
- metadata.gz: cafeed9abaed34c86f05a216f2ecfc989fdc7850045a46cf4a60b406faddea45e2b6f91595997082efecd4e998cbe7c46a10725c1c12f5fef2efd2fee1d98e1d
7
- data.tar.gz: 2acc399900e35283104df76c578024671bb2f05a2e94ecb50d7f37c82e3e6827f918b2253094ae8f4976132014465b43c414f87297c5b5aa54c7f9a8f3bdaf47
6
+ metadata.gz: 86a17cf2099b2771ea197c6c0614fbf494ee3f8304ed143281ef127efaf27dc27376fb860e4598d79e7f267251a9cf9ca438c7fb6ccbd346dcb0deb734497184
7
+ data.tar.gz: c40bf883da00c1b1dc2c7a6fab8355f625320f438989a284b1ef4e43f4720364883cda41e22d30b2a7ff3287a1bbc65f9d10a8e45b08c80a1404efdce4e216f0
@@ -3,10 +3,9 @@ cache: bundler
3
3
  sudo: false
4
4
 
5
5
  rvm:
6
- - 2.0.0
7
- - 2.1
8
- - 2.2
9
- - 2.3.0
6
+ - 2.1.9
7
+ - 2.2.5
8
+ - 2.3.1
10
9
 
11
10
  branches:
12
11
  only:
@@ -2,6 +2,14 @@
2
2
 
3
3
  This is the Changelog for the Stove gem.
4
4
 
5
+ ## v5.0.0 (2017-03-22)
6
+
7
+ - Enable pushing extended metadata for Chef 12 by default
8
+ - Add gem metadata to the extended metadata whitelist
9
+ - Use git porcelain vs. -s to avoid having local git configs interfere with stove functionality
10
+ - Only populate the extended metadata if the fields are actually present in the metadata
11
+ - Support for Ruby 2.0 has been dropped as Ruby 2.0 has been EOL'd
12
+
5
13
  ## v4.1.1 (2016-06-02)
6
14
 
7
15
  - Don't delete the metadata.json file if there isn't a metadata.rb
data/Gemfile CHANGED
@@ -1,2 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
+
4
+ # this maintains compatiblity with Ruby 2.1
5
+ gem 'rack', '< 2'
@@ -118,8 +118,8 @@ module Stove
118
118
  options[:key] = v
119
119
  end
120
120
 
121
- opts.on('--extended-metadata', 'Include non-backwards compatible metadata keys such as `issues_url`') do
122
- options[:extended_metadata] = true
121
+ opts.on('--[no-]extended-metadata', 'Include non-backwards compatible metadata keys such as `issues_url`') do |v|
122
+ options[:extended_metadata] = v
123
123
  end
124
124
 
125
125
  opts.on('--no-ssl-verify', 'Turn off ssl verify') do
@@ -174,7 +174,7 @@ module Stove
174
174
  :endpoint => nil,
175
175
  :username => Config.username,
176
176
  :key => Config.key,
177
- :extended_metadata => false,
177
+ :extended_metadata => true,
178
178
  :ssl_verify => true,
179
179
 
180
180
  # Git options
@@ -54,6 +54,14 @@ module Stove
54
54
  end
55
55
  EOM
56
56
  end
57
+
58
+ def def_meta_gems(field, instance_variable)
59
+ class_eval <<-EOM, __FILE__, __LINE__ + 1
60
+ def #{field}(thing)
61
+ @#{instance_variable} << thing
62
+ end
63
+ EOM
64
+ end
57
65
  end
58
66
 
59
67
  DEFAULT_VERSION = '>= 0.0.0'.freeze
@@ -79,6 +87,7 @@ module Stove
79
87
  def_attribute :issues_url
80
88
  def_attribute :chef_version
81
89
  def_attribute :ohai_version
90
+ def_attribute :gem
82
91
 
83
92
  def_meta_cookbook :supports, :platforms
84
93
  def_meta_cookbook :depends, :dependencies
@@ -91,11 +100,13 @@ module Stove
91
100
  def_meta_setter :recipe, :recipes
92
101
  def_meta_setter :grouping, :groupings
93
102
  def_meta_setter :attribute, :attributes
103
+ def_meta_gems :gem, :gems
94
104
 
95
105
  attr_reader :cookbook
96
106
  attr_reader :platforms
97
107
  attr_reader :dependencies
98
108
  attr_reader :recommendations
109
+ attr_reader :gems
99
110
  attr_reader :suggestions
100
111
  attr_reader :conflicting
101
112
  attr_reader :providing
@@ -111,6 +122,7 @@ module Stove
111
122
  @long_description = ''
112
123
  @source_url = Stove::Mash.new
113
124
  @issues_url = Stove::Mash.new
125
+ @gems = []
114
126
  @chef_version = Stove::Mash.new
115
127
  @ohai_version = Stove::Mash.new
116
128
  @platforms = Stove::Mash.new
@@ -190,8 +202,9 @@ module Stove
190
202
  }
191
203
 
192
204
  if extended_metadata
193
- hash['source_url'] = self.source_url
194
- hash['issues_url'] = self.issues_url
205
+ hash['source_url'] = self.source_url unless self.source_url.empty?
206
+ hash['issues_url'] = self.issues_url unless self.issues_url.empty?
207
+ hash['gems'] = self.gems unless self.gems.empty?
195
208
  hash['chef_version'] = self.chef_version
196
209
  hash['ohai_version'] = self.ohai_version
197
210
  end
@@ -8,7 +8,7 @@ module Stove
8
8
  end
9
9
 
10
10
  validate(:clean) do
11
- git_null('status -s').strip.empty?
11
+ git_null('status --porcelain').strip.empty?
12
12
  end
13
13
 
14
14
  validate(:up_to_date) do
@@ -1,3 +1,3 @@
1
1
  module Stove
2
- VERSION = '4.1.1'
2
+ VERSION = '5.0.0'
3
3
  end
@@ -8,14 +8,58 @@ class Stove::Cookbook
8
8
  hash = subject.to_hash(false)
9
9
  expect(hash).to_not include('issues_url')
10
10
  expect(hash).to_not include('source_url')
11
+ expect(hash).to_not include('chef')
11
12
  end
12
13
  end
13
14
 
14
15
  context 'when the extra metadata is included' do
15
16
  it 'includes the new metadata fields' do
17
+ subject.source_url('http://foo.example.com')
18
+ subject.issues_url('http://bar.example.com')
19
+ subject.gem('rspec')
16
20
  hash = subject.to_hash(true)
17
21
  expect(hash).to include('issues_url')
22
+ expect(hash['source_url']).to eq 'http://foo.example.com'
18
23
  expect(hash).to include('source_url')
24
+ expect(hash['issues_url']).to eq 'http://bar.example.com'
25
+ expect(hash).to include('gems')
26
+ expect(hash['gems']).to eq(['rspec'])
27
+ end
28
+ end
29
+
30
+ context 'when the extra metadata is not defined' do
31
+ it 'does not include the new metadata fields' do
32
+ hash = subject.to_hash(true)
33
+ expect(hash).not_to include('source_url')
34
+ expect(hash).not_to include('issues_url')
35
+ expect(hash).not_to include('gems')
36
+ end
37
+ end
38
+
39
+ context 'when only some of the extra metadata is defined' do
40
+ it 'only includes the source_url if issues_url is empty' do
41
+ subject.source_url('http://foo.example.com')
42
+ hash = subject.to_hash(true)
43
+ expect(hash).to include('source_url')
44
+ expect(hash['source_url']).to eq 'http://foo.example.com'
45
+ expect(hash).not_to include('issues_url')
46
+ end
47
+
48
+ it 'only includes the issues_url if source_url is empty' do
49
+ subject.issues_url('http://bar.example.com')
50
+ hash = subject.to_hash(true)
51
+ expect(hash).to include('issues_url')
52
+ expect(hash['issues_url']).to eq 'http://bar.example.com'
53
+ expect(hash).not_to include('source_url')
54
+ end
55
+
56
+ it 'only includes the gems' do
57
+ subject.gem('rspec')
58
+ hash = subject.to_hash(true)
59
+ expect(hash).to include('gems')
60
+ expect(hash['gems']).to eq(['rspec'])
61
+ expect(hash).not_to include('source_url')
62
+ expect(hash).not_to include('issues_url')
19
63
  end
20
64
  end
21
65
  end
@@ -18,7 +18,7 @@ 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.required_ruby_version = '>= 2.0'
21
+ spec.required_ruby_version = '>= 2.1'
22
22
 
23
23
  # Runtime dependencies
24
24
  spec.add_dependency 'chef-api', '~> 0.5'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stove
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Vargo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-02 00:00:00.000000000 Z
11
+ date: 2017-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-api
@@ -186,7 +186,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
186
  requirements:
187
187
  - - ">="
188
188
  - !ruby/object:Gem::Version
189
- version: '2.0'
189
+ version: '2.1'
190
190
  required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
@@ -194,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
194
  version: '0'
195
195
  requirements: []
196
196
  rubyforge_project:
197
- rubygems_version: 2.6.3
197
+ rubygems_version: 2.6.10
198
198
  signing_key:
199
199
  specification_version: 4
200
200
  summary: A command-line utility for releasing Chef community cookbooks
@@ -214,4 +214,3 @@ test_files:
214
214
  - spec/support/generators.rb
215
215
  - spec/unit/cookbook/metadata_spec.rb
216
216
  - spec/unit/error_spec.rb
217
- has_rdoc: