chef-sugar 3.0.0 → 3.0.1
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/CHANGELOG.md +7 -0
- data/README.md +2 -2
- data/lib/chef/sugar.rb +1 -0
- data/lib/chef/sugar/filters.rb +89 -5
- data/lib/chef/sugar/version.rb +1 -1
- metadata +2 -3
- data/.hound.yml +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a4445aeb371367f5395edf0f995fd4f52e6314a
|
4
|
+
data.tar.gz: 92dcd636d49954fd5095234337e363905a402c69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c97a0235cba4f0600e1f7213edfb881443a37867962a89d878d3b9976e0dc3b8198a7440a17ca0a7cf8d78a365e1b0653aedd915cea4d0a8a1aad06a0352b35
|
7
|
+
data.tar.gz: 067a00297c93cbb0ad32842070f7b0002e39703f7a13881d8a8c36931b56fdfd6e7da2e34c77dd3d16485ffb036431f117dafd50f9005367cf9fd64f595fca5b
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,13 @@ Chef Sugar Changelog
|
|
2
2
|
=========================
|
3
3
|
This file is used to list changes made in each version of the chef-sugar cookbook and gem.
|
4
4
|
|
5
|
+
v3.0.1 (2015-03-20)
|
6
|
+
-------------------
|
7
|
+
### Breaking Changes
|
8
|
+
- Rename `compile_time` `to at_compile_time` - if your recipes are affected by
|
9
|
+
this breaking change, your Chef Client run will produce a verbose error
|
10
|
+
message with details on how to fix the error.
|
11
|
+
|
5
12
|
v3.0.0 (2015-03-17)
|
6
13
|
-------------------
|
7
14
|
### Breaking Changes
|
data/README.md
CHANGED
@@ -412,13 +412,13 @@ end
|
|
412
412
|
```
|
413
413
|
|
414
414
|
### Filters
|
415
|
-
- `
|
415
|
+
- `at_compile_time` - accepts a block of resources to run at compile time
|
416
416
|
- `before` - insert resource in the collection before the given resource
|
417
417
|
- `after` - insert resource in the collection after the given resource
|
418
418
|
|
419
419
|
#### Examples
|
420
420
|
```ruby
|
421
|
-
|
421
|
+
at_compile_time do
|
422
422
|
package 'apache2'
|
423
423
|
end
|
424
424
|
|
data/lib/chef/sugar.rb
CHANGED
data/lib/chef/sugar/filters.rb
CHANGED
@@ -4,7 +4,7 @@ class Chef
|
|
4
4
|
#
|
5
5
|
# Evaluate resources at compile time instead of converge time.
|
6
6
|
#
|
7
|
-
class
|
7
|
+
class AtCompileTime
|
8
8
|
def initialize(recipe)
|
9
9
|
@recipe = recipe
|
10
10
|
end
|
@@ -94,19 +94,19 @@ class Chef
|
|
94
94
|
# end.run_action(:install)
|
95
95
|
#
|
96
96
|
# @example The new way
|
97
|
-
#
|
97
|
+
# at_compile_time do
|
98
98
|
# package('apache2')
|
99
99
|
# end
|
100
100
|
#
|
101
101
|
# @example Resource actions are run in order
|
102
|
-
#
|
102
|
+
# at_compile_time do
|
103
103
|
# service 'apache2' do
|
104
104
|
# action [:enable, :start] # run_action(:enable), run_action(:start)
|
105
105
|
# end
|
106
106
|
# end
|
107
107
|
#
|
108
|
-
def
|
109
|
-
Chef::Sugar::Filters::
|
108
|
+
def at_compile_time(&block)
|
109
|
+
Chef::Sugar::Filters::AtCompileTime.new(self).evaluate(&block)
|
110
110
|
end
|
111
111
|
|
112
112
|
#
|
@@ -149,5 +149,89 @@ class Chef
|
|
149
149
|
Chef::Sugar::Filters::Injector.new(self, identifier, :after).evaluate(&block)
|
150
150
|
end
|
151
151
|
end
|
152
|
+
|
153
|
+
module RecipeDSL
|
154
|
+
#
|
155
|
+
# @deprecated The description is in the method body pretty accurately...
|
156
|
+
#
|
157
|
+
def compile_time(&block)
|
158
|
+
message = <<-EOH
|
159
|
+
|
160
|
+
The Chef Sugar recipe DSL method `compile_time' has been renamed to
|
161
|
+
`at_compile_time'! This is a breaking change that was released in a patch
|
162
|
+
version, so please continue reading to understand the necessary semantic
|
163
|
+
versioning violation.
|
164
|
+
|
165
|
+
Despite having existed since October 15, 2013 (b4d4c0e) and being one of the
|
166
|
+
most widely used cookbooks in the Chef ecosystem, Chef Software decided to
|
167
|
+
implement their own version of `compile_time' in Chef 12.1, breaking any cookbook
|
168
|
+
that uses or depends on Chef Sugar on Chef 12.1:
|
169
|
+
|
170
|
+
https://www.chef.io/blog/2015/03/03/chef-12-1-0-released
|
171
|
+
|
172
|
+
As is common with Chef-ecosystem tooling, no warning was given, and maintainers
|
173
|
+
are left to pick up the pieces from upset Chef users who get rather bespoke
|
174
|
+
error messages now:
|
175
|
+
|
176
|
+
https://github.com/sethvargo/chef-sugar/issues/89
|
177
|
+
https://github.com/opscode-cookbooks/xml/issues/22
|
178
|
+
https://github.com/opscode-cookbooks/aws/pull/110
|
179
|
+
|
180
|
+
In order to progress Chef Sugar forward, the DSL method has been renamed to
|
181
|
+
avoid the namespace collision.
|
182
|
+
|
183
|
+
In short, you should change this:
|
184
|
+
|
185
|
+
compile_time do
|
186
|
+
# ...
|
187
|
+
end
|
188
|
+
|
189
|
+
to this:
|
190
|
+
|
191
|
+
at_compile_time do
|
192
|
+
# ...
|
193
|
+
end
|
194
|
+
|
195
|
+
EOH
|
196
|
+
|
197
|
+
if Chef::Resource::ChefGem.instance_methods(false).include?(:compile_time)
|
198
|
+
message << <<-EOH
|
199
|
+
You are running a version of Chef Client that includes the `compile_time'
|
200
|
+
attribute on core Chef resources (most likely Chef 12.1+). Instead of continuing
|
201
|
+
and having Chef provide you with an obscure error message, I am going to error
|
202
|
+
here. There is no way for the Chef Recipe to successfully continue unless you
|
203
|
+
change the Chef Sugar `compile_time' method to `at_compile_time' in your Chef
|
204
|
+
recipes.
|
205
|
+
|
206
|
+
You should NOT change resource-level `compile_time' attributes:
|
207
|
+
|
208
|
+
package "foo" do
|
209
|
+
compile_time true # Do NOT change these
|
210
|
+
end
|
211
|
+
|
212
|
+
I truly apologize for the inconvienence and hope the reason for introducing this
|
213
|
+
breaking change is clear. I am sorry if it causes extra work, but I promise this
|
214
|
+
error message is much more informative that "wrong number of arguments".
|
215
|
+
|
216
|
+
If you have any questions, please feel free to open an issue on GitHub at:
|
217
|
+
|
218
|
+
https://github.com/sethvargo/chef-sugar
|
219
|
+
|
220
|
+
Thank you, and have a great day!
|
221
|
+
EOH
|
222
|
+
raise RuntimeError, message
|
223
|
+
else
|
224
|
+
message << <<-EOH
|
225
|
+
You are running a version of Chef Client that does not include the
|
226
|
+
`compile_time' attribute on core Chef resources (most likely less than
|
227
|
+
Chef 12.1), so this is just a warning. Please consider changing the Chef Sugar
|
228
|
+
`compile_time' method to `at_compile_time' in your Chef recipes. If you upgrade
|
229
|
+
Chef, your recipes WILL break.
|
230
|
+
EOH
|
231
|
+
Chef::Log.warn(message)
|
232
|
+
at_compile_time(&block)
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
152
236
|
end
|
153
237
|
end
|
data/lib/chef/sugar/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-sugar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.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: 2015-03-
|
11
|
+
date: 2015-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -90,7 +90,6 @@ extensions: []
|
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
92
|
- ".gitignore"
|
93
|
-
- ".hound.yml"
|
94
93
|
- ".kitchen.yml"
|
95
94
|
- ".travis.yml"
|
96
95
|
- CHANGELOG.md
|
data/.hound.yml
DELETED