halite 1.0.1 → 1.0.2
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 -4
- data/CHANGELOG.md +9 -2
- data/Gemfile +1 -4
- data/gemfiles/master.gemfile +2 -2
- data/lib/halite/berkshelf/source.rb +1 -1
- data/lib/halite/converter/metadata.rb +1 -1
- data/lib/halite/converter/misc.rb +1 -1
- data/lib/halite/gem.rb +14 -2
- data/lib/halite/rake_helper.rb +2 -1
- data/lib/halite/version.rb +1 -1
- data/spec/converter/metadata_spec.rb +2 -0
- data/spec/gem_spec.rb +13 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bce33914c9ed0fcf28bc4739ef04bf41b5528b9a
|
4
|
+
data.tar.gz: d5af9a38530b3b346deb1b49315266e47996670c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec86cb776cc8eb7850c9b6e84506486dff8180df57ffb6c1b41e87d60e6a1a98c08c989e4ef8d21502def4d8432da422db805f3ca78bd022372d3d38023696bc
|
7
|
+
data.tar.gz: ad00a903f3a5d7af87334fff1d7a083e047fde44aa69de1217bcc74022250a25f5b96f8e70af3c237b995c04da72a8c1180b8049ac29592d2a34ee55da105c6a
|
data/.travis.yml
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
sudo: false
|
2
2
|
cache: bundler
|
3
3
|
language: ruby
|
4
|
+
addons:
|
5
|
+
apt:
|
6
|
+
packages:
|
7
|
+
- libgecode-dev
|
4
8
|
rvm:
|
5
9
|
- "2.0"
|
6
10
|
- "2.1"
|
@@ -8,10 +12,6 @@ rvm:
|
|
8
12
|
gemfile:
|
9
13
|
- gemfiles/default.gemfile
|
10
14
|
- gemfiles/master.gemfile
|
11
|
-
addons:
|
12
|
-
apt:
|
13
|
-
packages:
|
14
|
-
- libgecode-dev
|
15
15
|
env:
|
16
16
|
global:
|
17
17
|
- USE_SYSTEM_GECODE=true
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,16 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v1.0.2
|
4
|
+
|
5
|
+
* Handle converting cookbooks with pre-release version numbers and other
|
6
|
+
non-Chef compatible components.
|
7
|
+
* Include a cookbook's changelog file in converted output.
|
8
|
+
* Handle OS X's case-insensitivity when converting misc. type files (README, etc).
|
9
|
+
|
3
10
|
## v1.0.1
|
4
11
|
|
5
|
-
Fix issues with pre-release version numbers.
|
12
|
+
* Fix issues with pre-release version numbers.
|
6
13
|
|
7
14
|
## v1.0.0
|
8
15
|
|
9
|
-
Initial release!
|
16
|
+
* Initial release!
|
data/Gemfile
CHANGED
@@ -18,13 +18,10 @@ source 'https://rubygems.org/'
|
|
18
18
|
|
19
19
|
gemspec path: File.expand_path('..', __FILE__)
|
20
20
|
|
21
|
-
def dev_gem(name, path: File.join('..', name)
|
22
|
-
github = "#{github}/#{name}" unless github.include?('/')
|
21
|
+
def dev_gem(name, path: File.join('..', name))
|
23
22
|
path = File.expand_path(File.join('..', path), __FILE__)
|
24
23
|
if File.exist?(path)
|
25
24
|
gem name, path: path
|
26
|
-
else
|
27
|
-
gem name, github: github
|
28
25
|
end
|
29
26
|
end
|
30
27
|
|
data/gemfiles/master.gemfile
CHANGED
@@ -17,5 +17,5 @@
|
|
17
17
|
eval_gemfile File.expand_path('../../Gemfile', __FILE__)
|
18
18
|
|
19
19
|
gem 'chef', github: 'chef/chef'
|
20
|
-
|
21
|
-
|
20
|
+
gem 'poise', github: 'poise/poise'
|
21
|
+
gem 'poise-boiler', github: 'poise/poise-boiler'
|
@@ -30,7 +30,7 @@ module Halite
|
|
30
30
|
''.tap do |buf|
|
31
31
|
buf << gem_data.license_header
|
32
32
|
buf << "name #{gem_data.cookbook_name.inspect}\n"
|
33
|
-
buf << "version #{gem_data.
|
33
|
+
buf << "version #{gem_data.cookbook_version.inspect}\n"
|
34
34
|
if gem_data.spec.description && !gem_data.spec.description.empty?
|
35
35
|
buf << "description #{gem_data.spec.description.inspect}\n"
|
36
36
|
end
|
@@ -31,7 +31,7 @@ module Halite
|
|
31
31
|
# @param output_path [String] Output path for the cookbook.
|
32
32
|
# @return [void]
|
33
33
|
def self.write(gem_data, output_path)
|
34
|
-
%w{Readme License Copying Contributing}.each do |name|
|
34
|
+
%w{Readme License Copying Contributing Changelog}.each do |name|
|
35
35
|
if path = gem_data.find_misc_path(name) # rubocop:disable Lint/AssignmentInCondition
|
36
36
|
FileUtils.copy(path, File.join(output_path, File.basename(path)), preserve: true)
|
37
37
|
end
|
data/lib/halite/gem.rb
CHANGED
@@ -62,6 +62,18 @@ module Halite
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
+
# Version of the gem sanitized for Chef. This means no non-numeric tags and
|
66
|
+
# only three numeric components.
|
67
|
+
#
|
68
|
+
# @return [String]
|
69
|
+
def cookbook_version
|
70
|
+
if match = version.match(/^(\d+\.\d+\.(\d+)?)/)
|
71
|
+
match[1]
|
72
|
+
else
|
73
|
+
raise Halite::Error.new("Unable to parse #{version.inspect} as a Chef cookbook version")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
65
77
|
# Path to the .gemspec for this gem. This is different from
|
66
78
|
# Gem::Specification#spec_file because the Rubygems API is shit and just
|
67
79
|
# assumes the file layout matches normal, which is not the case with Bundler
|
@@ -159,7 +171,7 @@ module Halite
|
|
159
171
|
[name, name.upcase, name.downcase].each do |base|
|
160
172
|
['.md', '', '.txt', '.html'].each do |suffix|
|
161
173
|
path = File.join(spec.full_gem_path, base+suffix)
|
162
|
-
return path if File.exist?(path)
|
174
|
+
return path if File.exist?(path) && Dir.entries(File.dirname(path)).include?(File.basename(path))
|
163
175
|
end
|
164
176
|
end
|
165
177
|
# Didn't find anything
|
@@ -179,7 +191,7 @@ module Halite
|
|
179
191
|
spec = dep.to_spec || dep.to_specs.last
|
180
192
|
raise Error.new("Cannot find a gem to satisfy #{dep}") unless spec
|
181
193
|
spec
|
182
|
-
rescue Gem::LoadError => ex
|
194
|
+
rescue ::Gem::LoadError => ex
|
183
195
|
raise Error.new("Cannot find a gem to satisfy #{dep}: #{ex}")
|
184
196
|
end
|
185
197
|
end
|
data/lib/halite/rake_helper.rb
CHANGED
@@ -91,7 +91,7 @@ module Halite
|
|
91
91
|
def install_kitchen
|
92
92
|
desc 'Run all Test Kitchen tests'
|
93
93
|
task 'chef:kitchen' do
|
94
|
-
sh
|
94
|
+
sh(*%w{kitchen test -d always})
|
95
95
|
end
|
96
96
|
|
97
97
|
add_test_task('chef:kitchen')
|
@@ -114,6 +114,7 @@ module Halite
|
|
114
114
|
def release_cookbook
|
115
115
|
Dir.chdir(pkg_path) do
|
116
116
|
sh('stove --no-git')
|
117
|
+
shell.say("Pushed #{gemspec.name} #{gemspec.version} to supermarket.chef.io.", :green)
|
117
118
|
end
|
118
119
|
end
|
119
120
|
|
data/lib/halite/version.rb
CHANGED
@@ -21,6 +21,7 @@ describe Halite::Converter::Metadata do
|
|
21
21
|
let(:gem_name) { 'mygem' }
|
22
22
|
let(:cookbook_name) { gem_name }
|
23
23
|
let(:version) { '1.0.0' }
|
24
|
+
let(:cookbook_version) { version }
|
24
25
|
let(:cookbook_dependencies) { [] }
|
25
26
|
let(:spec) do
|
26
27
|
instance_double('Gem::Specification', description: '')
|
@@ -34,6 +35,7 @@ describe Halite::Converter::Metadata do
|
|
34
35
|
name: gem_name,
|
35
36
|
spec: spec,
|
36
37
|
version: version,
|
38
|
+
cookbook_version: cookbook_version,
|
37
39
|
)
|
38
40
|
end
|
39
41
|
subject { described_class.generate(gem_data) }
|
data/spec/gem_spec.rb
CHANGED
@@ -25,6 +25,7 @@ describe Halite::Gem do
|
|
25
25
|
|
26
26
|
context 'when loading halite' do
|
27
27
|
its(:name) { is_expected.to eq 'halite' }
|
28
|
+
its(:cookbook_name) { is_expected.to eq 'halite' }
|
28
29
|
its(:version) { is_expected.to eq Halite::VERSION }
|
29
30
|
its(:spec) { is_expected.to be_a Gem::Specification }
|
30
31
|
end
|
@@ -32,6 +33,7 @@ describe Halite::Gem do
|
|
32
33
|
context 'when loading halite with a version' do
|
33
34
|
let(:gem_version) { Halite::VERSION }
|
34
35
|
its(:name) { is_expected.to eq 'halite' }
|
36
|
+
its(:cookbook_name) { is_expected.to eq 'halite' }
|
35
37
|
its(:version) { is_expected.to eq Halite::VERSION }
|
36
38
|
its(:spec) { is_expected.to be_a Gem::Specification }
|
37
39
|
end
|
@@ -46,8 +48,9 @@ describe Halite::Gem do
|
|
46
48
|
context 'when loading test1' do
|
47
49
|
let(:gem_name) { 'test1' }
|
48
50
|
its(:name) { is_expected.to eq 'test1' }
|
49
|
-
its(:version) { is_expected.to eq '1.2.3' }
|
50
51
|
its(:cookbook_name) { is_expected.to eq 'test1' }
|
52
|
+
its(:version) { is_expected.to eq '1.2.3' }
|
53
|
+
its(:cookbook_version) { is_expected.to eq '1.2.3' }
|
51
54
|
its(:license_header) { is_expected.to eq "# coding: utf-8\n# Awesome license\n" }
|
52
55
|
its(:each_library_file) { is_expected.to eq [
|
53
56
|
[File.expand_path('../fixtures/gems/test1/lib/test1.rb', __FILE__), 'test1.rb'],
|
@@ -81,8 +84,9 @@ describe Halite::Gem do
|
|
81
84
|
context 'when loading test2' do
|
82
85
|
let(:gem_name) { 'test2' }
|
83
86
|
its(:name) { is_expected.to eq 'test2' }
|
84
|
-
its(:version) { is_expected.to eq '4.5.6' }
|
85
87
|
its(:cookbook_name) { is_expected.to eq 'test2' }
|
88
|
+
its(:version) { is_expected.to eq '4.5.6' }
|
89
|
+
its(:cookbook_version) { is_expected.to eq '4.5.6' }
|
86
90
|
its(:license_header) { is_expected.to eq "# coding: utf-8\n" }
|
87
91
|
its(:each_library_file) { is_expected.to eq [
|
88
92
|
[File.expand_path('../fixtures/gems/test2/lib/test2.rb', __FILE__), 'test2.rb'],
|
@@ -127,6 +131,13 @@ describe Halite::Gem do
|
|
127
131
|
its(:is_halite_cookbook?) { is_expected.to be_truthy }
|
128
132
|
end # /context when loading test3
|
129
133
|
|
134
|
+
context 'when loading test4' do
|
135
|
+
let(:gem_name) { 'test4' }
|
136
|
+
its(:cookbook_name) { is_expected.to eq 'test4' }
|
137
|
+
its(:version) { is_expected.to eq '2.3.1.rc.1' }
|
138
|
+
its(:cookbook_version) { is_expected.to eq '2.3.1' }
|
139
|
+
end # /context when loading test4
|
140
|
+
|
130
141
|
context 'when loading a Gem::Dependency' do
|
131
142
|
let(:dependency) do
|
132
143
|
reqs = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: halite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Noah Kantrowitz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|