berkshelf 7.0.7 → 7.0.8
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/Rakefile +1 -1
- data/berkshelf.gemspec +8 -9
- data/bin/berks +5 -0
- data/lib/berkshelf/cached_cookbook.rb +1 -1
- data/lib/berkshelf/chef_config_compat.rb +1 -0
- data/lib/berkshelf/chef_repo_universe.rb +2 -2
- data/lib/berkshelf/formatters/json.rb +3 -3
- data/lib/berkshelf/lockfile.rb +3 -3
- data/lib/berkshelf/uploader.rb +3 -3
- data/lib/berkshelf/version.rb +1 -1
- metadata +32 -186
- data/.github/lock.yml +0 -1
- data/.gitignore +0 -30
- data/.rubocop.yml +0 -12
- data/.travis.yml +0 -73
- data/CHANGELOG.legacy.md +0 -307
- data/CHANGELOG.md +0 -1589
- data/CONTRIBUTING.md +0 -68
- data/Gemfile.lock +0 -292
- data/PLUGINS.md +0 -25
- data/README.md +0 -72
- data/Thorfile +0 -61
- data/appveyor.yml +0 -31
- data/docs/berkshelf_for_newcomers.md +0 -64
- data/features/artifactory.feature +0 -70
- data/features/berksfile.feature +0 -46
- data/features/commands/apply.feature +0 -41
- data/features/commands/contingent.feature +0 -47
- data/features/commands/info.feature +0 -141
- data/features/commands/install.feature +0 -646
- data/features/commands/list.feature +0 -78
- data/features/commands/outdated.feature +0 -176
- data/features/commands/package.feature +0 -17
- data/features/commands/search.feature +0 -17
- data/features/commands/shelf/list.feature +0 -32
- data/features/commands/shelf/show.feature +0 -113
- data/features/commands/shelf/uninstall.feature +0 -96
- data/features/commands/show.feature +0 -83
- data/features/commands/update.feature +0 -142
- data/features/commands/upload.feature +0 -499
- data/features/commands/vendor.feature +0 -154
- data/features/commands/verify.feature +0 -29
- data/features/commands/viz.feature +0 -66
- data/features/community_site.feature +0 -37
- data/features/help.feature +0 -11
- data/features/json_formatter.feature +0 -158
- data/features/lifecycle.feature +0 -378
- data/features/lockfile.feature +0 -378
- data/features/step_definitions/berksfile_steps.rb +0 -54
- data/features/step_definitions/chef/config_steps.rb +0 -12
- data/features/step_definitions/chef_server_steps.rb +0 -60
- data/features/step_definitions/cli_steps.rb +0 -18
- data/features/step_definitions/config_steps.rb +0 -46
- data/features/step_definitions/environment_steps.rb +0 -11
- data/features/step_definitions/filesystem_steps.rb +0 -286
- data/features/step_definitions/gem_steps.rb +0 -13
- data/features/step_definitions/json_steps.rb +0 -29
- data/features/step_definitions/utility_steps.rb +0 -11
- data/features/support/aruba.rb +0 -12
- data/features/support/env.rb +0 -77
- data/spec/fixtures/cookbooks/example_cookbook/.gitignore +0 -2
- data/spec/fixtures/cookbooks/example_cookbook/.kitchen.yml +0 -26
data/features/lifecycle.feature
DELETED
@@ -1,378 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# The lifecycle feature contains a series of "long-running" lifecycle commands.
|
3
|
-
# These tests do not fit into a single command as they are cross-cutting and
|
4
|
-
# require more setup than a typical test.
|
5
|
-
#
|
6
|
-
# These tests are designed to mirror the real-world use cases for Berkshelf in
|
7
|
-
# day-to-day work. It also contains a collection of previously known bugs to
|
8
|
-
# prevent regressions.
|
9
|
-
#
|
10
|
-
Feature: Lifecycle commands
|
11
|
-
Background:
|
12
|
-
* the cookbook store has the cookbooks:
|
13
|
-
| ekaf | 1.0.0 |
|
14
|
-
| fake | 1.0.0 |
|
15
|
-
|
16
|
-
Scenario: A trusted lockfile does not fetch the dependency index
|
17
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
18
|
-
"""
|
19
|
-
cookbook 'fake', '1.0.0'
|
20
|
-
"""
|
21
|
-
* I write to "Berksfile.lock" with:
|
22
|
-
"""
|
23
|
-
DEPENDENCIES
|
24
|
-
fake (= 1.0.0)
|
25
|
-
|
26
|
-
GRAPH
|
27
|
-
fake (1.0.0)
|
28
|
-
"""
|
29
|
-
* I successfully run `berks install`
|
30
|
-
* the output should not contain "Fetching cookbook index"
|
31
|
-
* the output should contain "Using fake (1.0.0)"
|
32
|
-
|
33
|
-
Scenario: An untrusted lockfile fetches the dependency index
|
34
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
35
|
-
"""
|
36
|
-
cookbook 'fake', '1.0.0'
|
37
|
-
"""
|
38
|
-
* I successfully run `berks install`
|
39
|
-
* the output should contain "Fetching cookbook index"
|
40
|
-
* the file "Berksfile.lock" should contain:
|
41
|
-
"""
|
42
|
-
DEPENDENCIES
|
43
|
-
fake (= 1.0.0)
|
44
|
-
|
45
|
-
GRAPH
|
46
|
-
fake (1.0.0)
|
47
|
-
"""
|
48
|
-
* I append to "Berksfile" with:
|
49
|
-
"""
|
50
|
-
|
51
|
-
cookbook 'ekaf', '1.0.0'
|
52
|
-
"""
|
53
|
-
* I successfully run `berks install`
|
54
|
-
* the file "Berksfile.lock" should contain:
|
55
|
-
"""
|
56
|
-
DEPENDENCIES
|
57
|
-
ekaf (= 1.0.0)
|
58
|
-
fake (= 1.0.0)
|
59
|
-
|
60
|
-
GRAPH
|
61
|
-
ekaf (1.0.0)
|
62
|
-
fake (1.0.0)
|
63
|
-
"""
|
64
|
-
* the output should contain "Using ekaf (1.0.0)"
|
65
|
-
* the output should contain "Using fake (1.0.0)"
|
66
|
-
|
67
|
-
Scenario: Removing a direct dependency
|
68
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
69
|
-
"""
|
70
|
-
cookbook 'fake', '1.0.0'
|
71
|
-
"""
|
72
|
-
* I write to "Berksfile.lock" with:
|
73
|
-
"""
|
74
|
-
DEPENDENCIES
|
75
|
-
ekaf (= 1.0.0)
|
76
|
-
fake (= 1.0.0)
|
77
|
-
|
78
|
-
GRAPH
|
79
|
-
ekaf (1.0.0)
|
80
|
-
fake (1.0.0)
|
81
|
-
"""
|
82
|
-
* I successfully run `berks install`
|
83
|
-
* the file "Berksfile.lock" should contain:
|
84
|
-
"""
|
85
|
-
DEPENDENCIES
|
86
|
-
fake (= 1.0.0)
|
87
|
-
|
88
|
-
GRAPH
|
89
|
-
fake (1.0.0)
|
90
|
-
"""
|
91
|
-
* the output should not contain "Using ekaf (1.0.0)"
|
92
|
-
* the output should contain "Using fake (1.0.0)"
|
93
|
-
|
94
|
-
Scenario: A trusted lockfile with transitive dependencies does not fetch the dependency index
|
95
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
96
|
-
"""
|
97
|
-
metadata
|
98
|
-
"""
|
99
|
-
* I write to "metadata.rb" with:
|
100
|
-
"""
|
101
|
-
name 'transitive'
|
102
|
-
version '1.2.3'
|
103
|
-
depends 'fake', '1.0.0'
|
104
|
-
"""
|
105
|
-
* I write to "Berksfile.lock" with:
|
106
|
-
"""
|
107
|
-
DEPENDENCIES
|
108
|
-
transitive
|
109
|
-
path: .
|
110
|
-
metadata: true
|
111
|
-
|
112
|
-
GRAPH
|
113
|
-
fake (1.0.0)
|
114
|
-
transitive (1.2.3)
|
115
|
-
fake (= 1.0.0)
|
116
|
-
"""
|
117
|
-
* I successfully run `berks install`
|
118
|
-
* the output should not contain "Fetching cookbook index"
|
119
|
-
* the output should contain "Using fake (1.0.0)"
|
120
|
-
* the output should contain "Using transitive (1.2.3)"
|
121
|
-
|
122
|
-
Scenario: An utrusted lockfile because of transitive dependencies fetches the dependency index
|
123
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
124
|
-
"""
|
125
|
-
metadata
|
126
|
-
"""
|
127
|
-
* I write to "metadata.rb" with:
|
128
|
-
"""
|
129
|
-
name 'transitive'
|
130
|
-
version '1.2.3'
|
131
|
-
depends 'fake', '1.0.0'
|
132
|
-
"""
|
133
|
-
* I successfully run `berks install`
|
134
|
-
* the output should contain "Fetching cookbook index"
|
135
|
-
* the file "Berksfile.lock" should contain:
|
136
|
-
"""
|
137
|
-
DEPENDENCIES
|
138
|
-
transitive
|
139
|
-
path: .
|
140
|
-
metadata: true
|
141
|
-
|
142
|
-
GRAPH
|
143
|
-
fake (1.0.0)
|
144
|
-
transitive (1.2.3)
|
145
|
-
fake (= 1.0.0)
|
146
|
-
"""
|
147
|
-
* I append to "metadata.rb" with:
|
148
|
-
"""
|
149
|
-
|
150
|
-
depends 'ekaf', '1.0.0'
|
151
|
-
"""
|
152
|
-
* I successfully run `berks install`
|
153
|
-
* the file "Berksfile.lock" should contain:
|
154
|
-
"""
|
155
|
-
DEPENDENCIES
|
156
|
-
transitive
|
157
|
-
path: .
|
158
|
-
metadata: true
|
159
|
-
|
160
|
-
GRAPH
|
161
|
-
ekaf (1.0.0)
|
162
|
-
fake (1.0.0)
|
163
|
-
transitive (1.2.3)
|
164
|
-
ekaf (= 1.0.0)
|
165
|
-
fake (= 1.0.0)
|
166
|
-
"""
|
167
|
-
* the output should contain "Using ekaf (1.0.0)"
|
168
|
-
* the output should contain "Using fake (1.0.0)"
|
169
|
-
* the output should contain "Using transitive (1.2.3)"
|
170
|
-
|
171
|
-
Scenario: Removing a transitive dependency
|
172
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
173
|
-
"""
|
174
|
-
metadata
|
175
|
-
"""
|
176
|
-
* I write to "metadata.rb" with:
|
177
|
-
"""
|
178
|
-
name 'transitive'
|
179
|
-
version '1.2.3'
|
180
|
-
depends 'fake', '1.0.0'
|
181
|
-
"""
|
182
|
-
* I write to "Berksfile.lock" with:
|
183
|
-
"""
|
184
|
-
DEPENDENCIES
|
185
|
-
transitive
|
186
|
-
path: .
|
187
|
-
metadata: true
|
188
|
-
|
189
|
-
GRAPH
|
190
|
-
ekaf (1.0.0)
|
191
|
-
fake (1.0.0)
|
192
|
-
transitive (1.2.3)
|
193
|
-
ekaf (= 1.0.0)
|
194
|
-
fake (= 1.0.0)
|
195
|
-
"""
|
196
|
-
* I successfully run `berks install`
|
197
|
-
* the file "Berksfile.lock" should contain:
|
198
|
-
"""
|
199
|
-
DEPENDENCIES
|
200
|
-
transitive
|
201
|
-
path: .
|
202
|
-
metadata: true
|
203
|
-
|
204
|
-
GRAPH
|
205
|
-
fake (1.0.0)
|
206
|
-
transitive (1.2.3)
|
207
|
-
fake (= 1.0.0)
|
208
|
-
"""
|
209
|
-
* the output should not contain "Using ekaf (1.0.0)"
|
210
|
-
* the output should contain "Using fake (1.0.0)"
|
211
|
-
|
212
|
-
Scenario: Moving a transitive dependency to a direct dependency
|
213
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
214
|
-
"""
|
215
|
-
metadata
|
216
|
-
"""
|
217
|
-
* I write to "metadata.rb" with:
|
218
|
-
"""
|
219
|
-
name 'transitive'
|
220
|
-
version '1.2.3'
|
221
|
-
depends 'fake', '1.0.0'
|
222
|
-
"""
|
223
|
-
* I successfully run `berks install`
|
224
|
-
* the file "Berksfile.lock" should contain:
|
225
|
-
"""
|
226
|
-
DEPENDENCIES
|
227
|
-
transitive
|
228
|
-
path: .
|
229
|
-
metadata: true
|
230
|
-
|
231
|
-
GRAPH
|
232
|
-
fake (1.0.0)
|
233
|
-
transitive (1.2.3)
|
234
|
-
fake (= 1.0.0)
|
235
|
-
"""
|
236
|
-
* the output should not contain "Using ekaf (1.0.0)"
|
237
|
-
* the output should contain "Using fake (1.0.0)"
|
238
|
-
* I write to "fake/metadata.rb" with:
|
239
|
-
"""
|
240
|
-
name 'fake'
|
241
|
-
version '1.0.0'
|
242
|
-
"""
|
243
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
244
|
-
"""
|
245
|
-
metadata
|
246
|
-
cookbook 'fake', path: 'fake'
|
247
|
-
"""
|
248
|
-
* I successfully run `berks install`
|
249
|
-
* the file "Berksfile.lock" should contain:
|
250
|
-
"""
|
251
|
-
DEPENDENCIES
|
252
|
-
fake
|
253
|
-
path: fake
|
254
|
-
transitive
|
255
|
-
path: .
|
256
|
-
metadata: true
|
257
|
-
|
258
|
-
GRAPH
|
259
|
-
fake (1.0.0)
|
260
|
-
transitive (1.2.3)
|
261
|
-
fake (= 1.0.0)
|
262
|
-
"""
|
263
|
-
|
264
|
-
Scenario: Moving a transitive dependency to a direct dependency and then removing it
|
265
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
266
|
-
"""
|
267
|
-
metadata
|
268
|
-
"""
|
269
|
-
* I write to "metadata.rb" with:
|
270
|
-
"""
|
271
|
-
name 'transitive'
|
272
|
-
version '1.2.3'
|
273
|
-
depends 'fake'
|
274
|
-
"""
|
275
|
-
* I successfully run `berks install`
|
276
|
-
* I write to "fake/metadata.rb" with:
|
277
|
-
"""
|
278
|
-
name 'fake'
|
279
|
-
version '1.0.0'
|
280
|
-
"""
|
281
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
282
|
-
"""
|
283
|
-
metadata
|
284
|
-
cookbook 'fake', path: 'fake'
|
285
|
-
"""
|
286
|
-
* I successfully run `berks install`
|
287
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
288
|
-
"""
|
289
|
-
metadata
|
290
|
-
"""
|
291
|
-
* I successfully run `berks install`
|
292
|
-
* the file "Berksfile.lock" should contain:
|
293
|
-
"""
|
294
|
-
DEPENDENCIES
|
295
|
-
transitive
|
296
|
-
path: .
|
297
|
-
metadata: true
|
298
|
-
|
299
|
-
GRAPH
|
300
|
-
fake (1.0.0)
|
301
|
-
transitive (1.2.3)
|
302
|
-
fake (>= 0.0.0)
|
303
|
-
"""
|
304
|
-
|
305
|
-
Scenario: Bumping the version of a local cookbook
|
306
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
307
|
-
"""
|
308
|
-
metadata
|
309
|
-
"""
|
310
|
-
* I write to "metadata.rb" with:
|
311
|
-
"""
|
312
|
-
name 'fake'
|
313
|
-
version '1.0.0'
|
314
|
-
"""
|
315
|
-
* I successfully run `berks install`
|
316
|
-
* the file "Berksfile.lock" should contain:
|
317
|
-
"""
|
318
|
-
DEPENDENCIES
|
319
|
-
fake
|
320
|
-
path: .
|
321
|
-
metadata: true
|
322
|
-
|
323
|
-
GRAPH
|
324
|
-
fake (1.0.0)
|
325
|
-
"""
|
326
|
-
* I write to "metadata.rb" with:
|
327
|
-
"""
|
328
|
-
name 'fake'
|
329
|
-
version '1.0.1'
|
330
|
-
"""
|
331
|
-
* I successfully run `berks install`
|
332
|
-
* the file "Berksfile.lock" should contain:
|
333
|
-
"""
|
334
|
-
DEPENDENCIES
|
335
|
-
fake
|
336
|
-
path: .
|
337
|
-
metadata: true
|
338
|
-
|
339
|
-
GRAPH
|
340
|
-
fake (1.0.1)
|
341
|
-
"""
|
342
|
-
* the output should contain "Using fake (1.0.1)"
|
343
|
-
|
344
|
-
Scenario: Switching a dependency to a new location
|
345
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
346
|
-
"""
|
347
|
-
cookbook 'fake'
|
348
|
-
"""
|
349
|
-
* I write to "Berksfile.lock" with:
|
350
|
-
"""
|
351
|
-
DEPENDENCIES
|
352
|
-
fake
|
353
|
-
|
354
|
-
GRAPH
|
355
|
-
fake (1.0.0)
|
356
|
-
"""
|
357
|
-
* I have a Berksfile pointing at the local Berkshelf API with:
|
358
|
-
"""
|
359
|
-
cookbook 'fake', path: './fake'
|
360
|
-
"""
|
361
|
-
* I write to "fake/metadata.rb" with:
|
362
|
-
|
363
|
-
"""
|
364
|
-
name 'fake'
|
365
|
-
version '2.0.0'
|
366
|
-
"""
|
367
|
-
* I successfully run `berks install`
|
368
|
-
* the file "Berksfile.lock" should contain:
|
369
|
-
"""
|
370
|
-
DEPENDENCIES
|
371
|
-
fake
|
372
|
-
path: fake
|
373
|
-
|
374
|
-
GRAPH
|
375
|
-
fake (2.0.0)
|
376
|
-
"""
|
377
|
-
* the output should not contain "Using fake (1.0.0)"
|
378
|
-
* the output should contain "Using fake (2.0.0)"
|
data/features/lockfile.feature
DELETED
@@ -1,378 +0,0 @@
|
|
1
|
-
@api_server
|
2
|
-
Feature: Creating and reading the Berkshelf lockfile
|
3
|
-
Background:
|
4
|
-
* the cookbook store has the cookbooks:
|
5
|
-
| fake | 0.1.0 |
|
6
|
-
| fake | 0.2.0 |
|
7
|
-
| fake | 1.0.0 |
|
8
|
-
* the cookbook store has the git cookbooks:
|
9
|
-
| berkshelf-cookbook-fixture | 0.2.0 | 70a527e17d91f01f031204562460ad1c17f972ee |
|
10
|
-
| berkshelf-cookbook-fixture | 1.0.0 | 919afa0c402089df23ebdf36637f12271b8a96b4 |
|
11
|
-
| berkshelf-cookbook-fixture | 1.0.0 | a97b9447cbd41a5fe58eee2026e48ccb503bd3bc |
|
12
|
-
| berkshelf-cookbook-fixture | 1.0.0 | 93f5768b7d14df45e10d16c8bf6fe98ba3ff809a |
|
13
|
-
|
14
|
-
Scenario: Writing the Berksfile.lock
|
15
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
16
|
-
"""
|
17
|
-
cookbook 'fake', '1.0.0'
|
18
|
-
"""
|
19
|
-
When I successfully run `berks install`
|
20
|
-
Then the file "Berksfile.lock" should contain:
|
21
|
-
"""
|
22
|
-
DEPENDENCIES
|
23
|
-
fake (= 1.0.0)
|
24
|
-
|
25
|
-
GRAPH
|
26
|
-
fake (1.0.0)
|
27
|
-
"""
|
28
|
-
|
29
|
-
Scenario: Writing the Berksfile.lock when a 2.0 lockfile is present
|
30
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
31
|
-
"""
|
32
|
-
cookbook 'fake', '1.0.0'
|
33
|
-
"""
|
34
|
-
And I write to "Berksfile.lock" with:
|
35
|
-
"""
|
36
|
-
{
|
37
|
-
"sources": {
|
38
|
-
"fake": {
|
39
|
-
"locked_version": "1.0.0"
|
40
|
-
}
|
41
|
-
}
|
42
|
-
}
|
43
|
-
"""
|
44
|
-
When I successfully run `berks install`
|
45
|
-
Then the output should contain:
|
46
|
-
"""
|
47
|
-
It looks like you are using an older version of the lockfile.
|
48
|
-
"""
|
49
|
-
And the file "Berksfile.lock" should contain:
|
50
|
-
"""
|
51
|
-
DEPENDENCIES
|
52
|
-
fake (= 1.0.0)
|
53
|
-
|
54
|
-
GRAPH
|
55
|
-
fake (1.0.0)
|
56
|
-
"""
|
57
|
-
|
58
|
-
Scenario: Reading the Berksfile.lock when it contains an invalid path location
|
59
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
60
|
-
"""
|
61
|
-
cookbook 'fake'
|
62
|
-
"""
|
63
|
-
And I write to "Berksfile.lock" with:
|
64
|
-
"""
|
65
|
-
DEPENDENCIES
|
66
|
-
non-existent (~> 0.1)
|
67
|
-
path: /this/path/does/not/exist
|
68
|
-
"""
|
69
|
-
When I successfully run `berks install`
|
70
|
-
And the file "Berksfile.lock" should contain:
|
71
|
-
"""
|
72
|
-
DEPENDENCIES
|
73
|
-
fake
|
74
|
-
|
75
|
-
GRAPH
|
76
|
-
fake (1.0.0)
|
77
|
-
"""
|
78
|
-
|
79
|
-
Scenario: Installing a cookbook with dependencies
|
80
|
-
Given the cookbook store has the cookbooks:
|
81
|
-
| dep | 1.0.0 |
|
82
|
-
And the cookbook store contains a cookbook "fake" "1.0.0" with dependencies:
|
83
|
-
| dep | ~> 1.0.0 |
|
84
|
-
And I have a Berksfile pointing at the local Berkshelf API with:
|
85
|
-
"""
|
86
|
-
cookbook 'fake', '1.0.0'
|
87
|
-
"""
|
88
|
-
When I successfully run `berks install`
|
89
|
-
Then the file "Berksfile.lock" should contain:
|
90
|
-
"""
|
91
|
-
DEPENDENCIES
|
92
|
-
fake (= 1.0.0)
|
93
|
-
|
94
|
-
GRAPH
|
95
|
-
dep (1.0.0)
|
96
|
-
fake (1.0.0)
|
97
|
-
dep (~> 1.0.0)
|
98
|
-
"""
|
99
|
-
|
100
|
-
Scenario: Writing the Berksfile.lock with a pessimistic lock
|
101
|
-
And I have a Berksfile pointing at the local Berkshelf API with:
|
102
|
-
"""
|
103
|
-
cookbook 'fake', '~> 1.0.0'
|
104
|
-
"""
|
105
|
-
And I write to "Berksfile.lock" with:
|
106
|
-
"""
|
107
|
-
DEPENDENCIES
|
108
|
-
fake (~> 1.0.0)
|
109
|
-
|
110
|
-
GRAPH
|
111
|
-
fake (1.0.0)
|
112
|
-
"""
|
113
|
-
When I successfully run `berks install`
|
114
|
-
Then the file "Berksfile.lock" should contain:
|
115
|
-
"""
|
116
|
-
DEPENDENCIES
|
117
|
-
fake (~> 1.0.0)
|
118
|
-
|
119
|
-
GRAPH
|
120
|
-
fake (1.0.0)
|
121
|
-
"""
|
122
|
-
|
123
|
-
Scenario: Updating with a Berksfile.lock with pessimistic lock
|
124
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
125
|
-
"""
|
126
|
-
cookbook 'fake', '~> 0.1'
|
127
|
-
"""
|
128
|
-
And I write to "Berksfile.lock" with:
|
129
|
-
"""
|
130
|
-
DEPENDENCIES
|
131
|
-
fake (~> 0.1)
|
132
|
-
|
133
|
-
GRAPH
|
134
|
-
fake (0.1.0)
|
135
|
-
"""
|
136
|
-
When I successfully run `berks update fake`
|
137
|
-
Then the file "Berksfile.lock" should contain:
|
138
|
-
"""
|
139
|
-
DEPENDENCIES
|
140
|
-
fake (~> 0.1)
|
141
|
-
|
142
|
-
GRAPH
|
143
|
-
fake (0.2.0)
|
144
|
-
"""
|
145
|
-
|
146
|
-
Scenario: Updating with a Berksfile.lock with hard lock
|
147
|
-
And I have a Berksfile pointing at the local Berkshelf API with:
|
148
|
-
"""
|
149
|
-
cookbook 'fake', '0.1.0'
|
150
|
-
"""
|
151
|
-
And I write to "Berksfile.lock" with:
|
152
|
-
"""
|
153
|
-
DEPENDENCIES
|
154
|
-
fake (= 0.1.0)
|
155
|
-
|
156
|
-
GRAPH
|
157
|
-
fake (0.1.0)
|
158
|
-
"""
|
159
|
-
When I successfully run `berks update fake`
|
160
|
-
Then the file "Berksfile.lock" should contain:
|
161
|
-
"""
|
162
|
-
DEPENDENCIES
|
163
|
-
fake (= 0.1.0)
|
164
|
-
|
165
|
-
GRAPH
|
166
|
-
fake (0.1.0)
|
167
|
-
"""
|
168
|
-
|
169
|
-
Scenario: Updating a Berksfile.lock with a git location
|
170
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
171
|
-
"""
|
172
|
-
cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', ref: '919afa0c4'
|
173
|
-
"""
|
174
|
-
When I successfully run `berks install`
|
175
|
-
Then the file "Berksfile.lock" should contain:
|
176
|
-
"""
|
177
|
-
DEPENDENCIES
|
178
|
-
berkshelf-cookbook-fixture
|
179
|
-
git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
|
180
|
-
revision: 919afa0c402089df23ebdf36637f12271b8a96b4
|
181
|
-
ref: 919afa0
|
182
|
-
|
183
|
-
GRAPH
|
184
|
-
berkshelf-cookbook-fixture (1.0.0)
|
185
|
-
"""
|
186
|
-
|
187
|
-
Scenario: Updating a Berksfile.lock with a git location and a branch
|
188
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
189
|
-
"""
|
190
|
-
cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', branch: 'master'
|
191
|
-
"""
|
192
|
-
When I successfully run `berks install`
|
193
|
-
Then the file "Berksfile.lock" should contain:
|
194
|
-
"""
|
195
|
-
DEPENDENCIES
|
196
|
-
berkshelf-cookbook-fixture
|
197
|
-
git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
|
198
|
-
revision: a97b9447cbd41a5fe58eee2026e48ccb503bd3bc
|
199
|
-
branch: master
|
200
|
-
|
201
|
-
GRAPH
|
202
|
-
berkshelf-cookbook-fixture (1.0.0)
|
203
|
-
"""
|
204
|
-
|
205
|
-
Scenario: Updating a Berksfile.lock with a git location and a tag
|
206
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
207
|
-
"""
|
208
|
-
cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', tag: 'v0.2.0'
|
209
|
-
"""
|
210
|
-
When I successfully run `berks install`
|
211
|
-
Then the file "Berksfile.lock" should contain:
|
212
|
-
"""
|
213
|
-
DEPENDENCIES
|
214
|
-
berkshelf-cookbook-fixture
|
215
|
-
git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
|
216
|
-
revision: 70a527e17d91f01f031204562460ad1c17f972ee
|
217
|
-
tag: v0.2.0
|
218
|
-
|
219
|
-
GRAPH
|
220
|
-
berkshelf-cookbook-fixture (0.2.0)
|
221
|
-
"""
|
222
|
-
|
223
|
-
Scenario: Updating a Berksfile.lock with a GitHub location
|
224
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
225
|
-
"""
|
226
|
-
cookbook 'berkshelf-cookbook-fixture', github: 'RiotGames/berkshelf-cookbook-fixture', ref: '919afa0c4'
|
227
|
-
"""
|
228
|
-
When I successfully run `berks install`
|
229
|
-
Then the file "Berksfile.lock" should contain:
|
230
|
-
"""
|
231
|
-
DEPENDENCIES
|
232
|
-
berkshelf-cookbook-fixture
|
233
|
-
git: https://github.com/RiotGames/berkshelf-cookbook-fixture.git
|
234
|
-
revision: 919afa0c402089df23ebdf36637f12271b8a96b4
|
235
|
-
ref: 919afa0
|
236
|
-
|
237
|
-
GRAPH
|
238
|
-
berkshelf-cookbook-fixture (1.0.0)
|
239
|
-
"""
|
240
|
-
|
241
|
-
Scenario: Updating a Berksfile.lock when a git location with :rel
|
242
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
243
|
-
"""
|
244
|
-
cookbook 'berkshelf-cookbook-fixture', github: 'RiotGames/berkshelf-cookbook-fixture', branch: 'rel', rel: 'cookbooks/berkshelf-cookbook-fixture'
|
245
|
-
"""
|
246
|
-
When I successfully run `berks install`
|
247
|
-
Then the file "Berksfile.lock" should contain:
|
248
|
-
"""
|
249
|
-
DEPENDENCIES
|
250
|
-
berkshelf-cookbook-fixture
|
251
|
-
git: https://github.com/RiotGames/berkshelf-cookbook-fixture.git
|
252
|
-
revision: 93f5768b7d14df45e10d16c8bf6fe98ba3ff809a
|
253
|
-
branch: rel
|
254
|
-
rel: cookbooks/berkshelf-cookbook-fixture
|
255
|
-
|
256
|
-
GRAPH
|
257
|
-
berkshelf-cookbook-fixture (1.0.0)
|
258
|
-
"""
|
259
|
-
|
260
|
-
Scenario: Updating a Berksfile.lock with a path location
|
261
|
-
Given a cookbook named "fake"
|
262
|
-
And I have a Berksfile pointing at the local Berkshelf API with:
|
263
|
-
"""
|
264
|
-
cookbook 'fake', path: './fake'
|
265
|
-
"""
|
266
|
-
When I successfully run `berks install`
|
267
|
-
Then the file "Berksfile.lock" should contain:
|
268
|
-
"""
|
269
|
-
DEPENDENCIES
|
270
|
-
fake
|
271
|
-
path: fake
|
272
|
-
|
273
|
-
GRAPH
|
274
|
-
fake (0.0.0)
|
275
|
-
"""
|
276
|
-
|
277
|
-
Scenario: Installing a Berksfile with a metadata location
|
278
|
-
Given a cookbook named "fake"
|
279
|
-
And I cd to "fake"
|
280
|
-
And I have a Berksfile pointing at the local Berkshelf API with:
|
281
|
-
"""
|
282
|
-
metadata
|
283
|
-
"""
|
284
|
-
When I successfully run `berks install`
|
285
|
-
Then the file "Berksfile.lock" should contain:
|
286
|
-
"""
|
287
|
-
DEPENDENCIES
|
288
|
-
fake
|
289
|
-
path: .
|
290
|
-
metadata: true
|
291
|
-
|
292
|
-
GRAPH
|
293
|
-
fake (0.0.0)
|
294
|
-
"""
|
295
|
-
|
296
|
-
Scenario: Installing a Berksfile with a locked metadata location
|
297
|
-
Given a cookbook named "fake"
|
298
|
-
And I cd to "fake"
|
299
|
-
And I have a Berksfile pointing at the local Berkshelf API with:
|
300
|
-
"""
|
301
|
-
metadata
|
302
|
-
"""
|
303
|
-
And I write to "Berksfile.lock" with:
|
304
|
-
"""
|
305
|
-
DEPENDENCIES
|
306
|
-
fake
|
307
|
-
path: .
|
308
|
-
metadata: true
|
309
|
-
|
310
|
-
GRAPH
|
311
|
-
fake (0.0.0)
|
312
|
-
"""
|
313
|
-
When I successfully run `berks install`
|
314
|
-
Then the file "Berksfile.lock" should contain:
|
315
|
-
"""
|
316
|
-
DEPENDENCIES
|
317
|
-
fake
|
318
|
-
path: .
|
319
|
-
metadata: true
|
320
|
-
|
321
|
-
GRAPH
|
322
|
-
fake (0.0.0)
|
323
|
-
"""
|
324
|
-
|
325
|
-
Scenario: Installing when the locked version is no longer satisfied
|
326
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
327
|
-
"""
|
328
|
-
cookbook 'fake', '~> 1.3.0'
|
329
|
-
"""
|
330
|
-
And I write to "Berksfile.lock" with:
|
331
|
-
"""
|
332
|
-
DEPENDENCIES
|
333
|
-
fake (~> 1.3.0)
|
334
|
-
|
335
|
-
GRAPH
|
336
|
-
fake (1.0.0)
|
337
|
-
"""
|
338
|
-
When I run `berks install`
|
339
|
-
Then the output should contain:
|
340
|
-
"""
|
341
|
-
Berkshelf could not find compatible versions for cookbook 'fake':
|
342
|
-
In Berksfile:
|
343
|
-
fake (~> 1.3.0)
|
344
|
-
|
345
|
-
In Berksfile.lock:
|
346
|
-
fake (1.0.0)
|
347
|
-
|
348
|
-
Try running `berks update fake`, which will try to find 'fake' matching '~> 1.3.0'
|
349
|
-
"""
|
350
|
-
And the exit status should be "OutdatedDependency"
|
351
|
-
|
352
|
-
Scenario: Installing when the Lockfile is empty
|
353
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
354
|
-
"""
|
355
|
-
cookbook 'fake', '1.0.0'
|
356
|
-
"""
|
357
|
-
And an empty file named "Berksfile.lock"
|
358
|
-
When I successfully run `berks install`
|
359
|
-
Then the output should contain:
|
360
|
-
"""
|
361
|
-
Using fake (1.0.0)
|
362
|
-
"""
|
363
|
-
|
364
|
-
Scenario: Installing when the Lockfile is in a bad state
|
365
|
-
Given I have a Berksfile pointing at the local Berkshelf API with:
|
366
|
-
"""
|
367
|
-
cookbook 'fake', '1.0.0'
|
368
|
-
"""
|
369
|
-
Given I write to "Berksfile.lock" with:
|
370
|
-
"""
|
371
|
-
this is totally not valid
|
372
|
-
"""
|
373
|
-
When I run `berks install`
|
374
|
-
Then the output should contain:
|
375
|
-
"""
|
376
|
-
Error reading the Berkshelf lockfile:
|
377
|
-
"""
|
378
|
-
And the exit status should be "LockfileParserError"
|