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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/berkshelf.gemspec +8 -9
  4. data/bin/berks +5 -0
  5. data/lib/berkshelf/cached_cookbook.rb +1 -1
  6. data/lib/berkshelf/chef_config_compat.rb +1 -0
  7. data/lib/berkshelf/chef_repo_universe.rb +2 -2
  8. data/lib/berkshelf/formatters/json.rb +3 -3
  9. data/lib/berkshelf/lockfile.rb +3 -3
  10. data/lib/berkshelf/uploader.rb +3 -3
  11. data/lib/berkshelf/version.rb +1 -1
  12. metadata +32 -186
  13. data/.github/lock.yml +0 -1
  14. data/.gitignore +0 -30
  15. data/.rubocop.yml +0 -12
  16. data/.travis.yml +0 -73
  17. data/CHANGELOG.legacy.md +0 -307
  18. data/CHANGELOG.md +0 -1589
  19. data/CONTRIBUTING.md +0 -68
  20. data/Gemfile.lock +0 -292
  21. data/PLUGINS.md +0 -25
  22. data/README.md +0 -72
  23. data/Thorfile +0 -61
  24. data/appveyor.yml +0 -31
  25. data/docs/berkshelf_for_newcomers.md +0 -64
  26. data/features/artifactory.feature +0 -70
  27. data/features/berksfile.feature +0 -46
  28. data/features/commands/apply.feature +0 -41
  29. data/features/commands/contingent.feature +0 -47
  30. data/features/commands/info.feature +0 -141
  31. data/features/commands/install.feature +0 -646
  32. data/features/commands/list.feature +0 -78
  33. data/features/commands/outdated.feature +0 -176
  34. data/features/commands/package.feature +0 -17
  35. data/features/commands/search.feature +0 -17
  36. data/features/commands/shelf/list.feature +0 -32
  37. data/features/commands/shelf/show.feature +0 -113
  38. data/features/commands/shelf/uninstall.feature +0 -96
  39. data/features/commands/show.feature +0 -83
  40. data/features/commands/update.feature +0 -142
  41. data/features/commands/upload.feature +0 -499
  42. data/features/commands/vendor.feature +0 -154
  43. data/features/commands/verify.feature +0 -29
  44. data/features/commands/viz.feature +0 -66
  45. data/features/community_site.feature +0 -37
  46. data/features/help.feature +0 -11
  47. data/features/json_formatter.feature +0 -158
  48. data/features/lifecycle.feature +0 -378
  49. data/features/lockfile.feature +0 -378
  50. data/features/step_definitions/berksfile_steps.rb +0 -54
  51. data/features/step_definitions/chef/config_steps.rb +0 -12
  52. data/features/step_definitions/chef_server_steps.rb +0 -60
  53. data/features/step_definitions/cli_steps.rb +0 -18
  54. data/features/step_definitions/config_steps.rb +0 -46
  55. data/features/step_definitions/environment_steps.rb +0 -11
  56. data/features/step_definitions/filesystem_steps.rb +0 -286
  57. data/features/step_definitions/gem_steps.rb +0 -13
  58. data/features/step_definitions/json_steps.rb +0 -29
  59. data/features/step_definitions/utility_steps.rb +0 -11
  60. data/features/support/aruba.rb +0 -12
  61. data/features/support/env.rb +0 -77
  62. data/spec/fixtures/cookbooks/example_cookbook/.gitignore +0 -2
  63. data/spec/fixtures/cookbooks/example_cookbook/.kitchen.yml +0 -26
@@ -1,78 +0,0 @@
1
- Feature: berks list
2
- Scenario: When everything is good
3
- Given the cookbook store has the cookbooks:
4
- | fake1 | 1.0.0 |
5
- | fake2 | 1.0.1 |
6
- And I have a Berksfile pointing at the local Berkshelf API with:
7
- """
8
- cookbook 'fake1', '1.0.0'
9
- cookbook 'fake2', '1.0.1'
10
- """
11
- And I write to "Berksfile.lock" with:
12
- """
13
- DEPENDENCIES
14
- fake1 (= 1.0.0)
15
- fake2 (= 1.0.1)
16
-
17
- GRAPH
18
- fake1 (1.0.0)
19
- fake2 (1.0.1)
20
- """
21
- When I successfully run `berks list`
22
- Then the output should contain:
23
- """
24
- Cookbooks installed by your Berksfile:
25
- * fake1 (1.0.0)
26
- * fake2 (1.0.1)
27
- """
28
-
29
- Scenario: When the lockfile is not present
30
- Given I have a Berksfile pointing at the local Berkshelf API with:
31
- """
32
- cookbook 'fake', '1.0.0'
33
- """
34
- When I run `berks list`
35
- Then the output should contain:
36
- """
37
- Lockfile not found! Run `berks install` to create the lockfile.
38
- """
39
- And the exit status should be "LockfileNotFound"
40
-
41
- Scenario: When a dependency is not in the lockfile
42
- Given I have a Berksfile pointing at the local Berkshelf API with:
43
- """
44
- cookbook 'fake', '1.0.0'
45
- """
46
- And I write to "Berksfile.lock" with:
47
- """
48
- DEPENDENCIES
49
-
50
- GRAPH
51
- not_fake (1.0.0)
52
- """
53
- When I run `berks list`
54
- Then the output should contain:
55
- """
56
- The lockfile is out of sync! Run `berks install` to sync the lockfile.
57
- """
58
- And the exit status should be "LockfileOutOfSync"
59
-
60
- Scenario: When a dependency is not installed
61
- Given I have a Berksfile pointing at the local Berkshelf API with:
62
- """
63
- cookbook 'fake', '1.0.0'
64
- """
65
- And I write to "Berksfile.lock" with:
66
- """
67
- DEPENDENCIES
68
- fake (= 1.0.0)
69
-
70
- GRAPH
71
- fake (1.0.0)
72
- """
73
- When I run `berks list`
74
- Then the output should contain:
75
- """
76
- The cookbook 'fake (1.0.0)' is not installed. Please run `berks install` to download and install the missing dependency.
77
- """
78
- And the exit status should be "DependencyNotInstalled"
@@ -1,176 +0,0 @@
1
- Feature: berks outdated
2
- Scenario: the dependency is up to date
3
- Given the Chef Server has cookbooks:
4
- | bacon | 1.0.0 |
5
- | bacon | 1.1.0 |
6
- And the cookbook store has the cookbooks:
7
- | bacon | 1.1.0 |
8
- And I have a Berksfile pointing at the local Berkshelf API with:
9
- """
10
- cookbook 'bacon', '~> 1.1.0'
11
- """
12
- And I write to "Berksfile.lock" with:
13
- """
14
- DEPENDENCIES
15
- bacon (~> 1.1.0)
16
-
17
- GRAPH
18
- bacon (1.1.0)
19
- """
20
-
21
- When I successfully run `berks outdated`
22
- Then the output should contain:
23
- """
24
- All cookbooks up to date!
25
- """
26
-
27
- Scenario: the dependency has no version constraint and there are new items
28
- Given the Chef Server has cookbooks:
29
- | bacon | 1.0.0 |
30
- | bacon | 1.1.0 |
31
- And the cookbook store has the cookbooks:
32
- | bacon | 1.0.0 |
33
- And I have a Berksfile pointing at the local Berkshelf API with:
34
- """
35
- cookbook 'bacon'
36
- """
37
- And I write to "Berksfile.lock" with:
38
- """
39
- DEPENDENCIES
40
- bacon
41
-
42
- GRAPH
43
- bacon (1.0.0)
44
- """
45
- When I successfully run `berks outdated`
46
- Then the output should contain:
47
- """
48
- The following cookbooks have newer versions:
49
- * bacon (1.0.0 => 1.1.0)
50
- """
51
-
52
- Scenario: the dependency has a version constraint and there are new items that satisfy it
53
- Given the Chef Server has cookbooks:
54
- | bacon | 1.1.0 |
55
- | bacon | 1.2.1 |
56
- | bacon | 1.5.8 |
57
- And the cookbook store has the cookbooks:
58
- | bacon | 1.0.0 |
59
- And I have a Berksfile pointing at the local Berkshelf API with:
60
- """
61
- cookbook 'bacon', '~> 1.0'
62
- """
63
- And I write to "Berksfile.lock" with:
64
- """
65
- DEPENDENCIES
66
- bacon (~> 1.0)
67
-
68
- GRAPH
69
- bacon (1.0.0)
70
- """
71
- When I successfully run `berks outdated`
72
- Then the output should contain:
73
- """
74
- The following cookbooks have newer versions:
75
- * bacon (1.0.0 => 1.5.8)
76
- """
77
-
78
- Scenario: the dependency has a version constraint and there are new items that don't satisfy it
79
- Given the Chef Server has cookbooks:
80
- | bacon | 1.1.0 |
81
- | bacon | 1.5.8 |
82
- And the cookbook store has the cookbooks:
83
- | bacon | 1.1.0 |
84
- And I have a Berksfile pointing at the local Berkshelf API with:
85
- """
86
- cookbook 'bacon', '~> 1.1.0'
87
- """
88
- And I write to "Berksfile.lock" with:
89
- """
90
- DEPENDENCIES
91
- bacon (~> 1.1.0)
92
-
93
- GRAPH
94
- bacon (1.1.0)
95
- """
96
- When I successfully run `berks outdated`
97
- Then the output should contain:
98
- """
99
- All cookbooks up to date!
100
- """
101
-
102
- Scenario: the dependency has a version constraint and there are new items that satisfy it and --all is given
103
- Given the Chef Server has cookbooks:
104
- | bacon | 1.1.0 |
105
- | bacon | 1.5.8 |
106
- And the cookbook store has the cookbooks:
107
- | bacon | 1.1.0 |
108
- And I have a Berksfile pointing at the local Berkshelf API with:
109
- """
110
- cookbook 'bacon', '~> 1.1.0'
111
- """
112
- And I write to "Berksfile.lock" with:
113
- """
114
- DEPENDENCIES
115
- bacon (~> 1.1.0)
116
-
117
- GRAPH
118
- bacon (1.1.0)
119
- """
120
- When I successfully run `berks outdated --all`
121
- Then the output should contain:
122
- """
123
- The following cookbooks have newer versions:
124
- * bacon (1.1.0 => 1.5.8)
125
- """
126
-
127
- Scenario: When the lockfile is not present
128
- Given I have a Berksfile pointing at the local Berkshelf API with:
129
- """
130
- cookbook 'bacon', '1.0.0'
131
- """
132
- When I run `berks outdated`
133
- Then the output should contain:
134
- """
135
- Lockfile not found! Run `berks install` to create the lockfile.
136
- """
137
- And the exit status should be "LockfileNotFound"
138
-
139
- Scenario: When a dependency is not in the lockfile
140
- Given I have a Berksfile pointing at the local Berkshelf API with:
141
- """
142
- cookbook 'bacon', '1.0.0'
143
- """
144
- And I write to "Berksfile.lock" with:
145
- """
146
- DEPENDENCIES
147
-
148
- GRAPH
149
- not_fake (1.0.0)
150
- """
151
- When I run `berks outdated`
152
- Then the output should contain:
153
- """
154
- The lockfile is out of sync! Run `berks install` to sync the lockfile.
155
- """
156
- And the exit status should be "LockfileOutOfSync"
157
-
158
- Scenario: When a dependency is not installed
159
- Given I have a Berksfile pointing at the local Berkshelf API with:
160
- """
161
- cookbook 'bacon', '1.0.0'
162
- """
163
- And I write to "Berksfile.lock" with:
164
- """
165
- DEPENDENCIES
166
- bacon (= 1.0.0)
167
-
168
- GRAPH
169
- bacon (1.0.0)
170
- """
171
- When I run `berks outdated`
172
- Then the output should contain:
173
- """
174
- The cookbook 'bacon (1.0.0)' is not installed. Please run `berks install` to download and install the missing dependency.
175
- """
176
- And the exit status should be "DependencyNotInstalled"
@@ -1,17 +0,0 @@
1
- @api_server
2
- Feature: berks package
3
- Background:
4
- * the cookbook store has the cookbooks:
5
- | fake | 1.0.0 |
6
-
7
- Scenario: When no options are passed
8
- Given I have a Berksfile pointing at the local Berkshelf API with:
9
- """
10
- cookbook 'fake', '~> 1.0.0'
11
- """
12
- When I successfully run `berks package my-cookbooks.tar.gz`
13
- Then a file named "my-cookbooks.tar.gz" should exist
14
- And the output should contain:
15
- """
16
- Cookbook(s) packaged to
17
- """
@@ -1,17 +0,0 @@
1
- Feature: berks search
2
- Scenario: Searching for a cookbook by name
3
- * I successfully run `berks search berkshelf-cookbook-fixture`
4
- * the output should contain:
5
- """
6
- berkshelf-cookbook-fixture (1.0.0)
7
- """
8
-
9
- Scenario: Searching for a cookbook by partial name
10
- * I successfully run `berks search berkshelf-`
11
- * the results should have the cookbooks:
12
- """
13
- berkshelf-api (1.2.2)
14
- berkshelf-api-server (2.2.0)
15
- berkshelf-cookbook-fixture (1.0.0)
16
- """
17
- * the results should each start with "berkshelf-"
@@ -1,32 +0,0 @@
1
- Feature: berks shelf list
2
- Scenario: With no cookbooks in the store
3
- When I successfully run `berks shelf list`
4
- Then the output should contain:
5
- """
6
- There are no cookbooks in the Berkshelf shelf
7
- """
8
-
9
- Scenario: With two cookbooks in the store
10
- Given the cookbook store has the cookbooks:
11
- | fake | 1.0.0 |
12
- | ekaf | 2.3.4 |
13
- When I successfully run `berks shelf list`
14
- Then the output should contain:
15
- """
16
- Cookbooks in the Berkshelf shelf:
17
- * ekaf (2.3.4)
18
- * fake (1.0.0)
19
- """
20
-
21
- Scenario: With multiple cookbook versions installed
22
- Given the cookbook store has the cookbooks:
23
- | fake | 1.0.0 |
24
- | fake | 1.1.0 |
25
- | fake | 1.2.0 |
26
- | fake | 2.0.0 |
27
- When I successfully run `berks shelf list`
28
- Then the output should contain:
29
- """
30
- Cookbooks in the Berkshelf shelf:
31
- * fake (1.0.0, 1.1.0, 1.2.0, 2.0.0)
32
- """
@@ -1,113 +0,0 @@
1
- Feature: berks shelf show
2
- Scenario: With a cookbook that is not in the store
3
- When I run `berks shelf show fake`
4
- Then the output should contain:
5
- """
6
- Cookbook 'fake' not found in the Berkshelf shelf!
7
- """
8
- And the exit status should be "CookbookNotFound"
9
-
10
- Scenario: With cookbooks in the store
11
- Given the cookbook store has the cookbooks:
12
- | fake | 1.0.0 |
13
- | ekaf | 2.3.4 |
14
- When I successfully run `berks shelf show fake`
15
- Then the output should contain:
16
- """
17
- Displaying all versions of 'fake' in the Berkshelf shelf:
18
- Name: fake
19
- Version: 1.0.0
20
- License: All rights reserved
21
- """
22
- And the output should not contain:
23
- """
24
- Name: ekaf
25
- """
26
-
27
- Scenario: With cookbooks in the store and the --version option
28
- Given the cookbook store has the cookbooks:
29
- | fake | 1.0.0 |
30
- | ekaf | 2.3.4 |
31
- When I successfully run `berks shelf show fake --version 1.0.0`
32
- Then the output should contain:
33
- """
34
- Displaying 'fake' (1.0.0) in the Berkshelf shelf:
35
- Name: fake
36
- Version: 1.0.0
37
- License: All rights reserved
38
- """
39
- And the output should not contain:
40
- """
41
- Name: ekaf
42
- """
43
-
44
- Scenario: With cookbooks in the store and the --version option doesn't exist
45
- Given the cookbook store has the cookbooks:
46
- | fake | 1.0.0 |
47
- | ekaf | 2.3.4 |
48
- When I run `berks shelf show fake --version 1.2.3`
49
- Then the output should contain:
50
- """
51
- Cookbook 'fake' (1.2.3) not found in the Berkshelf shelf!
52
- """
53
- And the exit status should be "CookbookNotFound"
54
-
55
- Scenario: With multiple cookbook versions installed
56
- Given the cookbook store has the cookbooks:
57
- | fake | 1.0.0 |
58
- | fake | 1.1.0 |
59
- | fake | 1.2.0 |
60
- | fake | 2.0.0 |
61
- When I successfully run `berks shelf show fake`
62
- Then the output should contain:
63
- """
64
- Displaying all versions of 'fake' in the Berkshelf shelf:
65
- Name: fake
66
- Version: 1.0.0
67
- License: All rights reserved
68
-
69
- Name: fake
70
- Version: 1.1.0
71
- License: All rights reserved
72
-
73
- Name: fake
74
- Version: 1.2.0
75
- License: All rights reserved
76
-
77
- Name: fake
78
- Version: 2.0.0
79
- License: All rights reserved
80
- """
81
-
82
- Scenario: With multiple cookbook versions installed and the --version flag
83
- Given the cookbook store has the cookbooks:
84
- | fake | 1.0.0 |
85
- | fake | 1.1.0 |
86
- | fake | 1.2.0 |
87
- | fake | 2.0.0 |
88
- When I successfully run `berks shelf show fake --version 1.0.0`
89
- Then the output should contain:
90
- """
91
- Displaying 'fake' (1.0.0) in the Berkshelf shelf:
92
- Name: fake
93
- Version: 1.0.0
94
- License: All rights reserved
95
- """
96
- And the output should not contain:
97
- """
98
- Name: fake
99
- Version: 1.1.0
100
- License: All rights reserved
101
- """
102
- And the output should not contain:
103
- """
104
- Name: fake
105
- Version: 1.2.0
106
- License: All rights reserved
107
- """
108
- And the output should not contain:
109
- """
110
- Name: fake
111
- Version: 2.0.0
112
- License: All rights reserved
113
- """
@@ -1,96 +0,0 @@
1
- Feature: berks shelf uninstall
2
- Scenario: With no cookbooks in the store
3
- When I run `berks shelf uninstall fake`
4
- Then the output should contain:
5
- """
6
- Cookbook 'fake' not found in the Berkshelf shelf!
7
- """
8
- And the exit status should be "CookbookNotFound"
9
-
10
- Scenario: With two cookbooks in the store
11
- Given the cookbook store has the cookbooks:
12
- | fake | 1.0.0 |
13
- | ekaf | 2.3.4 |
14
- When I successfully run `berks shelf uninstall fake`
15
- Then the output should contain:
16
- """
17
- Successfully uninstalled fake (1.0.0)
18
- """
19
- And the cookbook store should not have the cookbooks:
20
- | fake | 1.0.0 |
21
- And the cookbook store should have the cookbooks:
22
- | ekaf | 2.3.4 |
23
-
24
- Scenario: With multiple cookbook versions installed
25
- Given the cookbook store has the cookbooks:
26
- | fake | 1.0.0 |
27
- | fake | 1.1.0 |
28
- | fake | 1.2.0 |
29
- | fake | 2.0.0 |
30
- When I successfully run `berks shelf uninstall fake`
31
- Then the output should contain:
32
- """
33
- Successfully uninstalled fake (1.0.0)
34
- Successfully uninstalled fake (1.1.0)
35
- Successfully uninstalled fake (1.2.0)
36
- Successfully uninstalled fake (2.0.0)
37
- """
38
- And the cookbook store should not have the cookbooks:
39
- | fake | 1.0.0 |
40
- | fake | 1.1.0 |
41
- | fake | 1.2.0 |
42
- | fake | 2.0.0 |
43
-
44
- Scenario: When specifying a version
45
- Given the cookbook store has the cookbooks:
46
- | fake | 1.0.0 |
47
- | fake | 1.1.0 |
48
- | fake | 1.2.0 |
49
- | fake | 2.0.0 |
50
- When I successfully run `berks shelf uninstall fake --version 1.0.0`
51
- Then the output should contain:
52
- """
53
- Successfully uninstalled fake (1.0.0)
54
- """
55
- And the cookbook store should not have the cookbooks:
56
- | fake | 1.0.0 |
57
- And the cookbook store should have the cookbooks:
58
- | fake | 1.1.0 |
59
- | fake | 1.2.0 |
60
- | fake | 2.0.0 |
61
-
62
- # FIXME: there seems to be a bug in aruba on windows related to
63
- # interactive stuff that i fully don't understand
64
- @spawn @not-windows
65
- Scenario: With contingencies
66
- Given the cookbook store contains a cookbook "fake" "1.0.0" with dependencies:
67
- | ekaf | 2.3.4 |
68
- And the cookbook store has the cookbooks:
69
- | ekaf | 2.3.4 |
70
- When I run `berks shelf uninstall ekaf` interactively
71
- And I type "yes"
72
- Then the output should contain:
73
- """
74
- [fake (1.0.0)] depend on ekaf.
75
-
76
- Are you sure you want to continue? (y/N)
77
- """
78
- And the output should contain:
79
- """
80
- Successfully uninstalled ekaf (2.3.4)
81
- """
82
- And the cookbook store should not have the cookbooks:
83
- | ekaf | 2.3.4 |
84
-
85
- Scenario: With contingencies and the --force flag
86
- Given the cookbook store contains a cookbook "fake" "1.0.0" with dependencies:
87
- | ekaf | 2.3.4 |
88
- And the cookbook store has the cookbooks:
89
- | ekaf | 2.3.4 |
90
- When I run `berks shelf uninstall ekaf --force`
91
- Then the output should contain:
92
- """
93
- Successfully uninstalled ekaf (2.3.4)
94
- """
95
- And the cookbook store should not have the cookbooks:
96
- | ekaf | 2.3.4 |