halite 1.4.0 → 1.5.0
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 +4 -4
- data/.travis.yml +4 -2
- data/CHANGELOG.md +12 -0
- data/gemfiles/master.gemfile +1 -0
- data/halite.gemspec +2 -2
- data/lib/halite/converter/metadata.rb +1 -1
- data/lib/halite/gem.rb +15 -0
- data/lib/halite/spec_helper/runner.rb +3 -0
- data/lib/halite/version.rb +1 -1
- data/spec/converter/metadata_spec.rb +11 -9
- data/spec/fixtures/cookbooks/test1/metadata.rb +1 -1
- data/spec/fixtures/cookbooks/test2/metadata.rb +1 -1
- data/spec/fixtures/cookbooks/test3/metadata.rb +1 -1
- data/spec/fixtures/{gems/test4/lib/test1.rb → cookbooks/test4/files/halite_gem/test4.rb} +0 -0
- data/spec/fixtures/cookbooks/test4/files/halite_gem/test4/version.rb +3 -0
- data/spec/fixtures/cookbooks/test4/libraries/default.rb +3 -0
- data/spec/fixtures/cookbooks/test4/metadata.rb +9 -0
- data/spec/fixtures/gems/test3/test3.gemspec +1 -0
- data/spec/fixtures/gems/test4/lib/test4.rb +2 -0
- data/spec/fixtures/gems/test4/test4.gemspec +1 -0
- data/spec/gem_spec.rb +4 -0
- data/spec/integration_spec.rb +4 -0
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e31ce37e3c552a468e47471ddca26379265e6ee
|
4
|
+
data.tar.gz: 0b3404564d2f9687e26c0b132d6b0efcdb075cd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a1d326bf0b05463d54b2eee1d75d99bcf975a8f396b313183b29ecd61e40874e3da881f66510d1aa4beee89f55dda5663c16db39b410f2777f8aa7dd5c728f0
|
7
|
+
data.tar.gz: d5bc501dc9431f2a2af53b63084da17c3f2150ace12000e52b7dee2b06759cc1815e447bb4a92c4911e78cea14e90cfd5b4f40f74fe42a065cff3a84d6cdd305
|
data/.travis.yml
CHANGED
@@ -2,8 +2,8 @@ sudo: false
|
|
2
2
|
cache: bundler
|
3
3
|
language: ruby
|
4
4
|
rvm:
|
5
|
-
- "2.
|
6
|
-
- "2.
|
5
|
+
- "2.3.3"
|
6
|
+
# - "2.4.1"
|
7
7
|
gemfile:
|
8
8
|
- gemfiles/chef-12.0.gemfile
|
9
9
|
- gemfiles/chef-12.1.gemfile
|
@@ -26,4 +26,6 @@ before_install:
|
|
26
26
|
- gem --version
|
27
27
|
- gem install bundler
|
28
28
|
- bundle --version
|
29
|
+
- bundle config --local path ${BUNDLE_PATH:-vendor/bundle}
|
30
|
+
install: bundle update --jobs=3 --retry=3
|
29
31
|
script: bundle exec rake integration
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Halite Changelog
|
2
2
|
|
3
|
+
## v1.5.0
|
4
|
+
|
5
|
+
* Set the default spec platform and version even when using the Halite runner
|
6
|
+
API directly.
|
7
|
+
* Allow setting the chef_version constraints on a cookbook through a normal
|
8
|
+
gem dependency on the `chef` gem.
|
9
|
+
* The default chef_version constraint has been changed from `~> 12.0` to `>= 12`
|
10
|
+
to allow for better interaction with the upcoming Chef 13 release.
|
11
|
+
* Bump Stove dependency from 4.x to 5.x. This removes Ruby 2.0 compat. Sorry.
|
12
|
+
* No longer testing on Ruby 2.2, which happens to be entering security-maintenance
|
13
|
+
mode today. Don't use it.
|
14
|
+
|
3
15
|
## v1.4.0
|
4
16
|
|
5
17
|
* Set a default platform and version in ChefSpec because Fauxhai is trying to
|
data/gemfiles/master.gemfile
CHANGED
@@ -17,6 +17,7 @@
|
|
17
17
|
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
|
18
18
|
|
19
19
|
gem 'chef', github: 'chef/chef'
|
20
|
+
gem 'ohai', github: 'chef/ohai'
|
20
21
|
gem 'poise', github: 'poise/poise'
|
21
22
|
gem 'poise-boiler', github: 'poise/poise-boiler'
|
22
23
|
gem 'poise-profiler', github: 'poise/poise-profiler'
|
data/halite.gemspec
CHANGED
@@ -33,8 +33,8 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
34
34
|
spec.require_paths = %w{lib}
|
35
35
|
|
36
|
-
spec.add_dependency 'chef', '
|
37
|
-
spec.add_dependency 'stove', '~>
|
36
|
+
spec.add_dependency 'chef', '>= 12.0', '< 14.0'
|
37
|
+
spec.add_dependency 'stove', '~> 5.0'
|
38
38
|
spec.add_dependency 'bundler' # Used for Bundler.load_gemspec
|
39
39
|
spec.add_dependency 'thor' # Used for Thor::Shell
|
40
40
|
|
@@ -47,7 +47,7 @@ module Halite
|
|
47
47
|
buf << ", #{dep.requirement.inspect}" if dep.requirement != '>= 0'
|
48
48
|
buf << "\n"
|
49
49
|
end
|
50
|
-
buf << "chef_version
|
50
|
+
buf << "chef_version(*#{gem_data.chef_version_requirement.inspect}) if defined?(chef_version)\n"
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
data/lib/halite/gem.rb
CHANGED
@@ -206,6 +206,21 @@ module Halite
|
|
206
206
|
nil
|
207
207
|
end
|
208
208
|
|
209
|
+
# Figure out which version of Chef this cookbook requires. Returns an array
|
210
|
+
# of Gem::Requirement-style string like `~> 12.0`.
|
211
|
+
#
|
212
|
+
# @return [Array<String>]
|
213
|
+
def chef_version_requirement
|
214
|
+
if spec.metadata['halite_chef_version']
|
215
|
+
# Manually overridden by gem metadata, use that.
|
216
|
+
[spec.metadata['halite_chef_version']]
|
217
|
+
elsif dep = spec.dependencies.find {|dep| dep.name == 'chef' && !dep.requirement.none? }
|
218
|
+
dep.requirement.as_list
|
219
|
+
else
|
220
|
+
['>= 12']
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
209
224
|
private
|
210
225
|
|
211
226
|
# Find a spec given a dependency.
|
@@ -43,6 +43,9 @@ module Halite
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def initialize(options={})
|
46
|
+
# Repeating the detault platform.
|
47
|
+
options[:platform] ||= 'ubuntu'
|
48
|
+
options[:version] ||= '16.04'
|
46
49
|
super(options) do |node|
|
47
50
|
# Allow inserting arbitrary attribute data in to the node
|
48
51
|
node.attributes.default = Chef::Mixin::DeepMerge.merge(node.attributes.default, options[:default_attributes]) if options[:default_attributes]
|
data/lib/halite/version.rb
CHANGED
@@ -25,6 +25,7 @@ describe Halite::Converter::Metadata do
|
|
25
25
|
let(:issues_url) { nil }
|
26
26
|
let(:cookbook_dependencies) { [] }
|
27
27
|
let(:gem_metadata) { {} }
|
28
|
+
let(:chef_version_requirement) { ['>= 12'] }
|
28
29
|
let(:spec) do
|
29
30
|
instance_double('Gem::Specification',
|
30
31
|
author: nil,
|
@@ -48,6 +49,7 @@ describe Halite::Converter::Metadata do
|
|
48
49
|
version: version,
|
49
50
|
cookbook_version: cookbook_version,
|
50
51
|
issues_url: issues_url,
|
52
|
+
chef_version_requirement: chef_version_requirement,
|
51
53
|
)
|
52
54
|
end
|
53
55
|
subject { described_class.generate(gem_data) }
|
@@ -56,7 +58,7 @@ describe Halite::Converter::Metadata do
|
|
56
58
|
it { is_expected.to eq <<-EOH }
|
57
59
|
name "mygem"
|
58
60
|
version "1.0.0"
|
59
|
-
chef_version
|
61
|
+
chef_version(*[">= 12"]) if defined?(chef_version)
|
60
62
|
EOH
|
61
63
|
end # /context with simple data
|
62
64
|
|
@@ -68,7 +70,7 @@ EOH
|
|
68
70
|
# header
|
69
71
|
name "mygem"
|
70
72
|
version "1.0.0"
|
71
|
-
chef_version
|
73
|
+
chef_version(*[">= 12"]) if defined?(chef_version)
|
72
74
|
EOH
|
73
75
|
end # /context with a license header
|
74
76
|
|
@@ -78,7 +80,7 @@ EOH
|
|
78
80
|
name "mygem"
|
79
81
|
version "1.0.0"
|
80
82
|
depends "other"
|
81
|
-
chef_version
|
83
|
+
chef_version(*[">= 12"]) if defined?(chef_version)
|
82
84
|
EOH
|
83
85
|
end # /context with one dependency
|
84
86
|
|
@@ -89,7 +91,7 @@ name "mygem"
|
|
89
91
|
version "1.0.0"
|
90
92
|
depends "other", "~> 1.0"
|
91
93
|
depends "another", "~> 2.0.0"
|
92
|
-
chef_version
|
94
|
+
chef_version(*[">= 12"]) if defined?(chef_version)
|
93
95
|
EOH
|
94
96
|
end # /context with two dependencies
|
95
97
|
|
@@ -102,7 +104,7 @@ EOH
|
|
102
104
|
name "mygem"
|
103
105
|
version "1.0.0"
|
104
106
|
description "My awesome library!"
|
105
|
-
chef_version
|
107
|
+
chef_version(*[">= 12"]) if defined?(chef_version)
|
106
108
|
EOH
|
107
109
|
end # /context with a description
|
108
110
|
|
@@ -116,17 +118,17 @@ EOH
|
|
116
118
|
name "mygem"
|
117
119
|
version "1.0.0"
|
118
120
|
long_description "My awesome readme!\\nCopyright me.\\n"
|
119
|
-
chef_version
|
121
|
+
chef_version(*[">= 12"]) if defined?(chef_version)
|
120
122
|
EOH
|
121
123
|
end # /context with a readme
|
122
124
|
|
123
125
|
context 'with a chef_version' do
|
124
|
-
let(:
|
126
|
+
let(:chef_version_requirement) { ['>= 0'] }
|
125
127
|
|
126
128
|
it { is_expected.to eq <<-EOH }
|
127
129
|
name "mygem"
|
128
130
|
version "1.0.0"
|
129
|
-
chef_version
|
131
|
+
chef_version(*[">= 0"]) if defined?(chef_version)
|
130
132
|
EOH
|
131
133
|
end # /context with a chef_version
|
132
134
|
|
@@ -137,7 +139,7 @@ EOH
|
|
137
139
|
name "mygem"
|
138
140
|
version "1.0.0"
|
139
141
|
issues_url "http://issues" if defined?(issues_url)
|
140
|
-
chef_version
|
142
|
+
chef_version(*[">= 12"]) if defined?(chef_version)
|
141
143
|
EOH
|
142
144
|
end # /context with an issues_url
|
143
145
|
end # /describe #generate
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
name "test4"
|
3
|
+
version "2.3.1"
|
4
|
+
maintainer "Noah Kantrowitz"
|
5
|
+
maintainer_email "noah@coderanger.net"
|
6
|
+
source_url "http://example.com/" if defined?(source_url)
|
7
|
+
issues_url "http://issues" if defined?(issues_url)
|
8
|
+
license "Apache 2.0"
|
9
|
+
chef_version(*[">= 1"]) if defined?(chef_version)
|
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.homepage = 'http://example.com/'
|
14
14
|
spec.license = 'Apache 2.0'
|
15
15
|
spec.metadata['halite_entry_point'] = 'test3/dsl'
|
16
|
+
spec.metadata['halite_chef_version'] = '>= 3'
|
16
17
|
|
17
18
|
spec.files = `cd #{File.expand_path('..', __FILE__)} && git ls-files`.split($/)
|
18
19
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
data/spec/gem_spec.rb
CHANGED
@@ -66,6 +66,7 @@ describe Halite::Gem do
|
|
66
66
|
its(:cookbook_dependencies) { is_expected.to eq [] }
|
67
67
|
its(:is_halite_cookbook?) { is_expected.to be_truthy }
|
68
68
|
its(:issues_url) { is_expected.to be_nil }
|
69
|
+
its(:chef_version_requirement) { is_expected.to eq [">= 12"] }
|
69
70
|
|
70
71
|
describe '#each_file' do
|
71
72
|
context 'with no prefixes' do
|
@@ -104,6 +105,7 @@ describe Halite::Gem do
|
|
104
105
|
its(:cookbook_dependencies) { is_expected.to eq [Halite::Dependencies::Dependency.new('testdep', '>= 0', :requirements)] }
|
105
106
|
its(:is_halite_cookbook?) { is_expected.to be_truthy }
|
106
107
|
its(:issues_url) { is_expected.to be_nil }
|
108
|
+
its(:chef_version_requirement) { is_expected.to eq [">= 12"] }
|
107
109
|
|
108
110
|
describe '#each_file' do
|
109
111
|
context 'with no prefixes' do
|
@@ -139,6 +141,7 @@ describe Halite::Gem do
|
|
139
141
|
its(:cookbook_dependencies) { is_expected.to eq [Halite::Dependencies::Dependency.new('test2', '~> 4.5.6', :dependencies)] }
|
140
142
|
its(:is_halite_cookbook?) { is_expected.to be_truthy }
|
141
143
|
its(:issues_url) { is_expected.to be_nil }
|
144
|
+
its(:chef_version_requirement) { is_expected.to eq [">= 3"] }
|
142
145
|
end # /context when loading test3
|
143
146
|
|
144
147
|
context 'when loading test4' do
|
@@ -147,6 +150,7 @@ describe Halite::Gem do
|
|
147
150
|
its(:version) { is_expected.to eq '2.3.1.rc.1' }
|
148
151
|
its(:cookbook_version) { is_expected.to eq '2.3.1' }
|
149
152
|
its(:issues_url) { is_expected.to eq 'http://issues' }
|
153
|
+
its(:chef_version_requirement) { is_expected.to eq [">= 1"] }
|
150
154
|
end # /context when loading test4
|
151
155
|
|
152
156
|
context 'when loading a Gem::Dependency' do
|
data/spec/integration_spec.rb
CHANGED
@@ -77,4 +77,8 @@ describe 'integration tests' do
|
|
77
77
|
let(:expect_output) { '!!!!!!!!!!test34.5.6' }
|
78
78
|
it_should_behave_like 'an integration test', 'test3', '7.8.9', [['testdep', '1.0.0']]
|
79
79
|
end # /context with test3 gem
|
80
|
+
|
81
|
+
context 'with test4 gem', integration: true do
|
82
|
+
it_should_behave_like 'an integration test', 'test4', '2.3.1.rc.1'
|
83
|
+
end # /context with test1 gem
|
80
84
|
end
|
metadata
CHANGED
@@ -1,43 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: halite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Noah Kantrowitz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '12.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '14.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '12.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '14.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: stove
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
39
|
+
version: '5.0'
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - "~>"
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
46
|
+
version: '5.0'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: bundler
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,6 +189,10 @@ files:
|
|
183
189
|
- spec/fixtures/cookbooks/test3/libraries/default.rb
|
184
190
|
- spec/fixtures/cookbooks/test3/metadata.rb
|
185
191
|
- spec/fixtures/cookbooks/test3/recipes/default.rb
|
192
|
+
- spec/fixtures/cookbooks/test4/files/halite_gem/test4.rb
|
193
|
+
- spec/fixtures/cookbooks/test4/files/halite_gem/test4/version.rb
|
194
|
+
- spec/fixtures/cookbooks/test4/libraries/default.rb
|
195
|
+
- spec/fixtures/cookbooks/test4/metadata.rb
|
186
196
|
- spec/fixtures/gems/test1/Rakefile
|
187
197
|
- spec/fixtures/gems/test1/lib/test1.rb
|
188
198
|
- spec/fixtures/gems/test1/lib/test1/version.rb
|
@@ -202,7 +212,7 @@ files:
|
|
202
212
|
- spec/fixtures/gems/test3/lib/test3/version.rb
|
203
213
|
- spec/fixtures/gems/test3/test3.gemspec
|
204
214
|
- spec/fixtures/gems/test4/Rakefile
|
205
|
-
- spec/fixtures/gems/test4/lib/
|
215
|
+
- spec/fixtures/gems/test4/lib/test4.rb
|
206
216
|
- spec/fixtures/gems/test4/lib/test4/version.rb
|
207
217
|
- spec/fixtures/gems/test4/test4.gemspec
|
208
218
|
- spec/gem_spec.rb
|
@@ -262,6 +272,10 @@ test_files:
|
|
262
272
|
- spec/fixtures/cookbooks/test3/libraries/default.rb
|
263
273
|
- spec/fixtures/cookbooks/test3/metadata.rb
|
264
274
|
- spec/fixtures/cookbooks/test3/recipes/default.rb
|
275
|
+
- spec/fixtures/cookbooks/test4/files/halite_gem/test4.rb
|
276
|
+
- spec/fixtures/cookbooks/test4/files/halite_gem/test4/version.rb
|
277
|
+
- spec/fixtures/cookbooks/test4/libraries/default.rb
|
278
|
+
- spec/fixtures/cookbooks/test4/metadata.rb
|
265
279
|
- spec/fixtures/gems/test1/Rakefile
|
266
280
|
- spec/fixtures/gems/test1/lib/test1.rb
|
267
281
|
- spec/fixtures/gems/test1/lib/test1/version.rb
|
@@ -281,7 +295,7 @@ test_files:
|
|
281
295
|
- spec/fixtures/gems/test3/lib/test3/version.rb
|
282
296
|
- spec/fixtures/gems/test3/test3.gemspec
|
283
297
|
- spec/fixtures/gems/test4/Rakefile
|
284
|
-
- spec/fixtures/gems/test4/lib/
|
298
|
+
- spec/fixtures/gems/test4/lib/test4.rb
|
285
299
|
- spec/fixtures/gems/test4/lib/test4/version.rb
|
286
300
|
- spec/fixtures/gems/test4/test4.gemspec
|
287
301
|
- spec/gem_spec.rb
|