chef 13.11.3 → 13.12.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -3
  3. data/README.md +35 -40
  4. data/Rakefile +18 -22
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +3 -3
  7. data/lib/chef/client.rb +1 -1
  8. data/lib/chef/mixin/params_validate.rb +3 -1
  9. data/lib/chef/provider/script.rb +2 -2
  10. data/lib/chef/version.rb +1 -1
  11. data/spec/functional/http/simple_spec.rb +12 -6
  12. data/spec/functional/resource/remote_file_spec.rb +19 -15
  13. data/spec/support/platform_helpers.rb +2 -1
  14. data/tasks/announce.rb +1 -1
  15. data/tasks/dependencies.rb +5 -39
  16. data/tasks/maintainers.rb +10 -10
  17. data/tasks/rspec.rb +2 -2
  18. data/tasks/templates/prerelease.md.erb +11 -2
  19. data/tasks/templates/release.md.erb +9 -1
  20. metadata +6 -248
  21. data/CONTRIBUTING.md +0 -151
  22. data/VERSION +0 -1
  23. data/acceptance/.gitignore +0 -3
  24. data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +0 -33
  25. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +0 -283
  26. data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +0 -59
  27. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +0 -68
  28. data/acceptance/.shared/kitchen_acceptance/metadata.rb +0 -1
  29. data/acceptance/Gemfile +0 -19
  30. data/acceptance/Gemfile.lock +0 -266
  31. data/acceptance/README.md +0 -137
  32. data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +0 -2
  33. data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  34. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  35. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  36. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  37. data/acceptance/basics/.kitchen.yml +0 -4
  38. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +0 -19
  39. data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +0 -6
  40. data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +0 -8
  41. data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +0 -2
  42. data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  43. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -2
  44. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -2
  45. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -2
  46. data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +0 -16
  47. data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +0 -3
  48. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +0 -101
  49. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +0 -3
  50. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +0 -4
  51. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +0 -4
  52. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +0 -2
  53. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +0 -4
  54. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +0 -2
  55. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +0 -7
  56. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +0 -44
  57. data/acceptance/data-collector/.kitchen.yml +0 -9
  58. data/acceptance/data-collector/Berksfile +0 -3
  59. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +0 -208
  60. data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +0 -8
  61. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +0 -2
  62. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +0 -1
  63. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  64. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  65. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -61
  66. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +0 -2
  67. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +0 -43
  68. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +0 -41
  69. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  70. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  71. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  72. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  73. data/acceptance/top-cookbooks/.gitignore +0 -1
  74. data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +0 -6
  75. data/acceptance/top-cookbooks/.kitchen.iis.yml +0 -4
  76. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +0 -7
  77. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +0 -7
  78. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +0 -7
  79. data/acceptance/top-cookbooks/.kitchen.powershell.yml +0 -4
  80. data/acceptance/top-cookbooks/.kitchen.sql_server.yml +0 -5
  81. data/acceptance/top-cookbooks/.kitchen.winbox.yml +0 -8
  82. data/acceptance/top-cookbooks/.kitchen.windows.yml +0 -38
  83. data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +0 -2
  84. data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  85. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  86. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  87. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  88. data/acceptance/trivial/.kitchen.yml +0 -7
  89. data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +0 -5
  90. data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +0 -2
  91. data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  92. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  93. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  94. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  95. data/acceptance/windows-service/.kitchen.yml +0 -7
  96. data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +0 -58
  97. data/distro/common/html/_sources/ctl_chef_client.txt +0 -36
  98. data/distro/common/html/_sources/ctl_chef_server.txt +0 -341
  99. data/distro/common/html/_sources/ctl_chef_shell.txt +0 -15
  100. data/distro/common/html/_sources/ctl_chef_solo.txt +0 -25
  101. data/distro/common/html/_sources/index.txt +0 -135
  102. data/distro/common/html/_sources/knife.txt +0 -74
  103. data/distro/common/html/_sources/knife_bootstrap.txt +0 -56
  104. data/distro/common/html/_sources/knife_client.txt +0 -151
  105. data/distro/common/html/_sources/knife_common_options.txt +0 -6
  106. data/distro/common/html/_sources/knife_configure.txt +0 -29
  107. data/distro/common/html/_sources/knife_cookbook.txt +0 -236
  108. data/distro/common/html/_sources/knife_cookbook_site.txt +0 -157
  109. data/distro/common/html/_sources/knife_data_bag.txt +0 -160
  110. data/distro/common/html/_sources/knife_delete.txt +0 -26
  111. data/distro/common/html/_sources/knife_deps.txt +0 -61
  112. data/distro/common/html/_sources/knife_diff.txt +0 -34
  113. data/distro/common/html/_sources/knife_download.txt +0 -44
  114. data/distro/common/html/_sources/knife_edit.txt +0 -26
  115. data/distro/common/html/_sources/knife_environment.txt +0 -158
  116. data/distro/common/html/_sources/knife_exec.txt +0 -47
  117. data/distro/common/html/_sources/knife_index_rebuild.txt +0 -21
  118. data/distro/common/html/_sources/knife_list.txt +0 -33
  119. data/distro/common/html/_sources/knife_node.txt +0 -250
  120. data/distro/common/html/_sources/knife_raw.txt +0 -35
  121. data/distro/common/html/_sources/knife_recipe_list.txt +0 -23
  122. data/distro/common/html/_sources/knife_role.txt +0 -157
  123. data/distro/common/html/_sources/knife_search.txt +0 -53
  124. data/distro/common/html/_sources/knife_serve.txt +0 -19
  125. data/distro/common/html/_sources/knife_show.txt +0 -27
  126. data/distro/common/html/_sources/knife_ssh.txt +0 -43
  127. data/distro/common/html/_sources/knife_ssl_check.txt +0 -41
  128. data/distro/common/html/_sources/knife_ssl_fetch.txt +0 -41
  129. data/distro/common/html/_sources/knife_status.txt +0 -37
  130. data/distro/common/html/_sources/knife_tag.txt +0 -69
  131. data/distro/common/html/_sources/knife_upload.txt +0 -49
  132. data/distro/common/html/_sources/knife_user.txt +0 -127
  133. data/distro/common/html/_sources/knife_using.txt +0 -43
  134. data/distro/common/html/_sources/knife_xargs.txt +0 -30
  135. data/distro/common/html/_static/ajax-loader.gif +0 -0
  136. data/distro/common/html/_static/basic.css +0 -537
  137. data/distro/common/html/_static/chef.ico +0 -0
  138. data/distro/common/html/_static/chef_html_logo.png +0 -0
  139. data/distro/common/html/_static/comment-bright.png +0 -0
  140. data/distro/common/html/_static/comment-close.png +0 -0
  141. data/distro/common/html/_static/comment.png +0 -0
  142. data/distro/common/html/_static/contents.png +0 -0
  143. data/distro/common/html/_static/doctools.js +0 -238
  144. data/distro/common/html/_static/down-pressed.png +0 -0
  145. data/distro/common/html/_static/down.png +0 -0
  146. data/distro/common/html/_static/file.png +0 -0
  147. data/distro/common/html/_static/guide.css +0 -505
  148. data/distro/common/html/_static/jquery.js +0 -2
  149. data/distro/common/html/_static/minus.png +0 -0
  150. data/distro/common/html/_static/navigation.png +0 -0
  151. data/distro/common/html/_static/plus.png +0 -0
  152. data/distro/common/html/_static/pygments.css +0 -62
  153. data/distro/common/html/_static/searchtools.js +0 -622
  154. data/distro/common/html/_static/underscore.js +0 -31
  155. data/distro/common/html/_static/up-pressed.png +0 -0
  156. data/distro/common/html/_static/up.png +0 -0
  157. data/distro/common/html/_static/websupport.js +0 -808
  158. data/distro/common/html/ctl_chef_client.html +0 -270
  159. data/distro/common/html/ctl_chef_server.html +0 -728
  160. data/distro/common/html/ctl_chef_shell.html +0 -163
  161. data/distro/common/html/ctl_chef_solo.html +0 -194
  162. data/distro/common/html/index.html +0 -202
  163. data/distro/common/html/knife.html +0 -170
  164. data/distro/common/html/knife_bootstrap.html +0 -285
  165. data/distro/common/html/knife_client.html +0 -285
  166. data/distro/common/html/knife_common_options.html +0 -96
  167. data/distro/common/html/knife_configure.html +0 -105
  168. data/distro/common/html/knife_cookbook.html +0 -487
  169. data/distro/common/html/knife_cookbook_site.html +0 -375
  170. data/distro/common/html/knife_data_bag.html +0 -374
  171. data/distro/common/html/knife_delete.html +0 -93
  172. data/distro/common/html/knife_deps.html +0 -143
  173. data/distro/common/html/knife_diff.html +0 -123
  174. data/distro/common/html/knife_download.html +0 -145
  175. data/distro/common/html/knife_edit.html +0 -89
  176. data/distro/common/html/knife_environment.html +0 -322
  177. data/distro/common/html/knife_exec.html +0 -220
  178. data/distro/common/html/knife_index_rebuild.html +0 -83
  179. data/distro/common/html/knife_list.html +0 -114
  180. data/distro/common/html/knife_node.html +0 -458
  181. data/distro/common/html/knife_raw.html +0 -110
  182. data/distro/common/html/knife_recipe_list.html +0 -91
  183. data/distro/common/html/knife_role.html +0 -295
  184. data/distro/common/html/knife_search.html +0 -203
  185. data/distro/common/html/knife_serve.html +0 -79
  186. data/distro/common/html/knife_show.html +0 -104
  187. data/distro/common/html/knife_ssh.html +0 -177
  188. data/distro/common/html/knife_ssl_check.html +0 -151
  189. data/distro/common/html/knife_ssl_fetch.html +0 -151
  190. data/distro/common/html/knife_status.html +0 -144
  191. data/distro/common/html/knife_tag.html +0 -138
  192. data/distro/common/html/knife_upload.html +0 -153
  193. data/distro/common/html/knife_user.html +0 -242
  194. data/distro/common/html/knife_using.html +0 -210
  195. data/distro/common/html/knife_xargs.html +0 -122
  196. data/distro/common/html/objects.inv +0 -0
  197. data/distro/common/html/search.html +0 -82
  198. data/distro/common/html/searchindex.js +0 -1
  199. data/distro/common/man/man1/README.md +0 -58
  200. data/distro/common/man/man1/chef-shell.1 +0 -194
  201. data/distro/common/man/man1/knife-bootstrap.1 +0 -215
  202. data/distro/common/man/man1/knife-client.1 +0 -443
  203. data/distro/common/man/man1/knife-configure.1 +0 -161
  204. data/distro/common/man/man1/knife-cookbook-site.1 +0 -552
  205. data/distro/common/man/man1/knife-cookbook.1 +0 -770
  206. data/distro/common/man/man1/knife-data-bag.1 +0 -617
  207. data/distro/common/man/man1/knife-delete.1 +0 -127
  208. data/distro/common/man/man1/knife-deps.1 +0 -246
  209. data/distro/common/man/man1/knife-diff.1 +0 -226
  210. data/distro/common/man/man1/knife-download.1 +0 -258
  211. data/distro/common/man/man1/knife-edit.1 +0 -121
  212. data/distro/common/man/man1/knife-environment.1 +0 -496
  213. data/distro/common/man/man1/knife-exec.1 +0 -362
  214. data/distro/common/man/man1/knife-index-rebuild.1 +0 -63
  215. data/distro/common/man/man1/knife-list.1 +0 -174
  216. data/distro/common/man/man1/knife-node.1 +0 -716
  217. data/distro/common/man/man1/knife-raw.1 +0 -172
  218. data/distro/common/man/man1/knife-recipe-list.1 +0 -85
  219. data/distro/common/man/man1/knife-role.1 +0 -426
  220. data/distro/common/man/man1/knife-search.1 +0 -359
  221. data/distro/common/man/man1/knife-serve.1 +0 -109
  222. data/distro/common/man/man1/knife-show.1 +0 -160
  223. data/distro/common/man/man1/knife-ssh.1 +0 -284
  224. data/distro/common/man/man1/knife-ssl-check.1 +0 -207
  225. data/distro/common/man/man1/knife-ssl-fetch.1 +0 -207
  226. data/distro/common/man/man1/knife-status.1 +0 -234
  227. data/distro/common/man/man1/knife-tag.1 +0 -189
  228. data/distro/common/man/man1/knife-upload.1 +0 -280
  229. data/distro/common/man/man1/knife-user.1 +0 -356
  230. data/distro/common/man/man1/knife-xargs.1 +0 -189
  231. data/distro/common/man/man1/knife.1 +0 -332
  232. data/distro/common/man/man8/chef-apply.8 +0 -86
  233. data/distro/common/man/man8/chef-client.8 +0 -398
  234. data/distro/common/man/man8/chef-solo.8 +0 -260
  235. data/distro/common/markdown/README +0 -3
  236. data/distro/common/markdown/man1/chef-shell.mkd +0 -195
  237. data/distro/common/markdown/man1/knife-bootstrap.mkd +0 -141
  238. data/distro/common/markdown/man1/knife-client.mkd +0 -103
  239. data/distro/common/markdown/man1/knife-configure.mkd +0 -71
  240. data/distro/common/markdown/man1/knife-cookbook-site.mkd +0 -123
  241. data/distro/common/markdown/man1/knife-cookbook.mkd +0 -263
  242. data/distro/common/markdown/man1/knife-data-bag.mkd +0 -121
  243. data/distro/common/markdown/man1/knife-environment.mkd +0 -151
  244. data/distro/common/markdown/man1/knife-exec.mkd +0 -42
  245. data/distro/common/markdown/man1/knife-index.mkd +0 -30
  246. data/distro/common/markdown/man1/knife-node.mkd +0 -130
  247. data/distro/common/markdown/man1/knife-role.mkd +0 -85
  248. data/distro/common/markdown/man1/knife-search.mkd +0 -180
  249. data/distro/common/markdown/man1/knife-ssh.mkd +0 -69
  250. data/distro/common/markdown/man1/knife-status.mkd +0 -36
  251. data/distro/common/markdown/man1/knife-tag.mkd +0 -39
  252. data/distro/common/markdown/man1/knife.mkd +0 -213
  253. data/distro/common/markdown/man8/chef-client.mkd +0 -75
  254. data/distro/common/markdown/man8/chef-expander.mkd +0 -81
  255. data/distro/common/markdown/man8/chef-expanderctl.mkd +0 -57
  256. data/distro/common/markdown/man8/chef-server-webui.mkd +0 -121
  257. data/distro/common/markdown/man8/chef-server.mkd +0 -120
  258. data/distro/common/markdown/man8/chef-solo.mkd +0 -107
  259. data/distro/common/markdown/man8/chef-solr.mkd +0 -89
  260. data/distro/powershell/chef/chef.psm1 +0 -459
  261. data/tasks/cbgb.rb +0 -84
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8880a5eff343534ec15cf535f23cc1a0fba4a3a2
4
- data.tar.gz: f23ad02185380f751ed8518a56ac1e8b65cb4353
3
+ metadata.gz: 7695157c9c19cba7968d427ab11d7e61d5a66419
4
+ data.tar.gz: a884dce4ff2cb72bf6e2bd10a673620aca1f7f0e
5
5
  SHA512:
6
- metadata.gz: 539613d5ddc0642095c1f8ffd5c0b21283af2e8de49969c5ed86d3d29e9c6166a21cdbefefd2e261aeb026820dba01251e175726a345a1fe6a04d275b22674ff
7
- data.tar.gz: aada4a0350fabba8d693858688285550a5d482a4ce9c596ca112305116c2c682a525bcbf6bcd7e4218d2439913995649f523c2059e7e043c36ad5d9263aac8bf
6
+ metadata.gz: 99a20971bb8aa97e45c5d09ab07ce86f0819349d6a325e6d53530f254f9f5dba2bc0f1cbc5180e543f3cd00b8b9b6a5760f6f63a1fd28ed0ff590db6397c2c7a
7
+ data.tar.gz: 9572a4f6b5193c39f2774e18f049eb9eae2c747b1cc05101d43140c9f7d620f1613453389f039b24a071ef6fb8d77bc4a40d008dbc40817d4dabb77f4657fb2c
data/Gemfile CHANGED
@@ -49,15 +49,16 @@ group(:ruby_shadow) do
49
49
  end
50
50
 
51
51
  group(:development, :test) do
52
- gem "rake"
52
+ # we pin rake as a copy of rake is installed from the ruby source
53
+ # if you bump the ruby version you should confirm we don't end up with
54
+ # two rake gems installed again
55
+ gem "rake", "<= 12.0.0"
53
56
  gem "simplecov"
54
57
  gem "webmock"
55
58
  gem "chefstyle", "0.6.0"
56
59
  end
57
60
 
58
61
  group(:travis) do
59
- # See `bundler-audit` in .travis.yml
60
- gem "bundler-audit", git: "https://github.com/rubysec/bundler-audit.git"
61
62
  gem "travis"
62
63
  end
63
64
 
data/README.md CHANGED
@@ -26,7 +26,7 @@ If you just want to use Chef, check out these resources:
26
26
  - [learnchef](https://learn.chef.io): Getting started guide
27
27
  - [docs.chef.io](https://docs.chef.io): Comprehensive User Docs
28
28
  - [Installer Downloads](https://downloads.chef.io/chef/): Install Chef as a complete package
29
- - [chef/chef](https://hub.docker.com/r/chef/chef): Docker image for use with [kitchen-dokken](https://github.com/someara/kitchen-dokken)
29
+ - [chef/chef](https://hub.docker.com/r/chef/chef/): Docker image for use with [kitchen-dokken](https://github.com/someara/kitchen-dokken/)
30
30
 
31
31
  ## Reporting Issues
32
32
 
@@ -43,9 +43,9 @@ against the repository you think best fits and it will be directed to the approp
43
43
 
44
44
  ## Installing From Git for Developers
45
45
 
46
- **NOTE:** As a Chef user, please download the omnibus package of [Chef](https://downloads.chef.io/chef) or [Chef-DK](https://downloads.chef.io/chef)
46
+ **NOTE:** As a Chef user, please download the [Chef](https://downloads.chef.io/chef) or [Chef-DK](https://downloads.chef.io/chef) packages, which provide Ruby and other necessary libraries for running Chef.
47
47
 
48
- We do not recommend installing from gems, or building from source. The following instructions apply only to those doing software development on Chef.
48
+ We do not recommend end users install Chef from gems or build from source. The following instructions apply only to those doing software development on Chef.
49
49
 
50
50
  ### Prerequisites
51
51
 
@@ -63,36 +63,31 @@ note about downloading the pre-built omnibus install if you do not understand ho
63
63
 
64
64
  ### Chef Installation
65
65
 
66
- Then get the source and install it:
66
+ Once you have your development environment configured you can clone the Chef repository and install Chef:
67
67
 
68
68
  ```bash
69
69
  git clone https://github.com/chef/chef.git
70
70
  cd chef
71
71
  bundle install
72
- bundle exec rake gem
73
72
  bundle exec rake install
74
73
  ```
75
74
 
76
75
  ## Contributing/Development
77
76
 
78
- Please read our [Community Contributions Guidelines](https://docs.chef.io/community_contributions.html), and
79
- ensure you are signing all your commits with DCO sign-off.
77
+ Please read our [Community Contributions Guidelines](https://docs.chef.io/community_contributions.html), and ensure you are signing all your commits with DCO sign-off.
80
78
 
81
79
  The general development process is:
82
80
 
83
81
  1. Fork this repo and clone it to your workstation.
84
82
  2. Create a feature branch for your change.
85
83
  3. Write code and tests.
86
- 4. Push your feature branch to github and open a pull request against master.
84
+ 4. Push your feature branch to GitHub and open a pull request against master.
87
85
 
88
- Once your repository is set up, you can start working on the code. We do utilize
89
- RSpec for test driven development, so you'll need to get a development
90
- environment running. Follow the above procedure ("Installing from Git") to get
91
- your local copy of the source running.
86
+ Once your repository is set up, you can start working on the code. We do utilize RSpec for test driven development, so you'll need to get a development environment running. Follow the above procedure ("Installing from Git") to get your local copy of the source running.
92
87
 
93
88
  ## Testing
94
89
 
95
- This repository only uses rspec for testing.
90
+ This repository uses rspec for testing.
96
91
 
97
92
  ```bash
98
93
  # all tests
@@ -105,11 +100,11 @@ bundle exec rspec spec/PATH/TO/FILE_spec.rb
105
100
  bundle exec rspec spec/PATH/TO/DIR
106
101
  ```
107
102
 
108
- When you submit a PR rspec tests will run automatically on travis and appveyor.
103
+ When you submit a PR rspec tests will run automatically on [Travis-CI](https://travis-ci.org/) and [AppVeyor](https://www.appveyor.com/).
109
104
 
110
105
  ## Building the Full Package
111
106
 
112
- To build chef as a standalone package, we use the [omnibus](omnibus/README.md) system.
107
+ To build Chef as a standalone package, we use the [omnibus](omnibus/README.md) packaging system.
113
108
 
114
109
  To build:
115
110
 
@@ -120,9 +115,7 @@ bundle install
120
115
  bundle exec omnibus build chef
121
116
  ```
122
117
 
123
- The prerequisites necessary to run omnibus itself are not documented here. The automation we use is
124
- the [opscode-ci cookbook](https://github.com/chef-cookbooks/opscode-ci) cookbook, which serves as the most
125
- current documentation.
118
+ The prerequisites necessary to run omnibus itself are not documented in this repository. See the [Omnibus repository](https://github.com/chef/omnibus) for additional details.
126
119
 
127
120
  ## Updating Dependencies
128
121
 
@@ -134,9 +127,7 @@ If you want to change our constraints (change which packages and versions we acc
134
127
 
135
128
  In addition there are several places versions are pinned for CI tasks:
136
129
 
137
- * [acceptance/Gemfile](acceptance/Gemfile) and [acceptance/Gemfile.lock](acceptance/Gemfile.lock): Acceptance tests (internal jenkins)
138
130
  * [kitchen-tests/Gemfile](kitchen-tests/Gemfile) and [kitchen-tests/Gemfile.lock](kitchen-tests/Gemfile.lock): Gems for test-kitchen tests (travis)
139
- * [kitchen-tests/Berksfile](kitchen-tests/Berksfile) and [kitchen-tests/Berksfile.lock](kitchen-tests/Berksfile.lock): Cookbooks for test-kitchen tests (travis)
140
131
 
141
132
  In order to update everything run `rake dependencies`. Note that the [Gemfile.lock](Gemfile.lock) pins windows platforms and to fully regenerate the lockfile
142
133
  you must use the following commands or run `rake dependencies:update_gemfile_lock`:
@@ -153,24 +144,23 @@ Chef is an amalgam of many components. These components update all the time, nec
153
144
 
154
145
  ## Chef Packages
155
146
 
156
- Chef is distributed as packages for debian, rhel, ubuntu, windows, solaris, aix, and os x. It includes a large number of components from various sources, and these are versioned and maintained separately from chef project, which bundles them all together conveniently for the user.
147
+ Chef is distributed as packages for debian, rhel, ubuntu, windows, solaris, aix, and macos. It includes a large number of components from various sources, and these are versioned and maintained separately from the chef project, which bundles them all together conveniently for the user.
157
148
 
158
149
  These packages go through several milestones:
159
- - `master`: When code is checked in to master, the patch version of chef is bumped (e.g. 0.9.10 -> 0.9.11) and a build is kicked off automatically to create and test the packages in Chef's Jenkins cluster.
150
+ - `master`: When code is checked in to master, the patch version of chef is bumped (e.g. 14.5.1 -> 14.5.2) and a build is kicked off automatically to create and test the packages in Chef's internal CI cluster.
160
151
  - `unstable`: When a package is built, it enters the unstable channel. When all packages for all OS's have successfully built, the test phase is kicked off in Jenkins across all supported OS's. These builds are password-protected and generally only available to the test systems.
161
- - `current`: If the packages pass all the tests on all supported OS's, it is promoted as a unit to `current`, and is available via Chef's artifactory by running `curl https://www.chef.io/chef/install.sh | sudo bash -s -- -c current -P chef`
162
- - `stable`: Periodically, Chef will pick a release to "bless" for folks who would like a slower update schedule than "every time a build passes the tests." When this happens, it is manually promoted to stable and an announcement is sent to the list. It can be reached at https://downloads.chef.io or installed using the `curl` command without specifying `-c current`. Packages in `stable` are no longer available in `current`.
152
+ - `current`: If the packages pass all the tests on all supported OS's, it is promoted as a unit to `current`, and is available by running `curl https://www.chef.io/chef/install.sh | sudo bash -s -- -c current -P chef` or at <https://downloads.chef.io/chef/current>
153
+ - `stable`: Periodically, Chef will pick a release to "bless" for folks who would like a slower update schedule than "every time a build passes the tests." When this happens, it is manually promoted to stable and an announcement is sent to the list. It can be reached at <https://downloads.chef.io> or installed using the `curl` command without specifying `-c current`. Packages in `stable` are no longer available in `current`.
163
154
 
164
155
  Additionally, periodically Chef will update the desired versions of chef components and check that in to `master`, triggering a new build with the updated components in it.
165
156
 
166
157
  ## Automated Version Bumping
167
158
 
168
- Whenever a change is checked in to `master`, the patch version of `chef` is bumped. To do this, the `lita-versioner` bot listens to github for merged PRs, and when it finds one, takes these actions:
159
+ Whenever a change is checked in to `master`, the patch version of `chef` is bumped. To do this, the `chef-ci` bot listens to GitHub for merged PRs, and when it finds one, takes these actions:
169
160
 
170
- 1. Bumps the patch version in `lib/chef/version.rb` (e.g. 0.9.14 -> 0.9.15).
171
- 2. Runs `rake bundle:install` to update the `Gemfile.lock` to include the new version.
172
- 3. Runs `rake changelog:update` to update the `CHANGELOG.md`.
173
- 4. Pushes to `master` and submits a new build to Chef's Jenkins cluster.
161
+ 1. Bumps the patch version (e.g. 14.1.14 -> 14.1.15) by running ./ci/version_bump.sh
162
+ 2. Updates the changelog with the new pull request and current point release
163
+ 3. Pushes to `master` and submits a new build to Chef's Jenkins cluster.
174
164
 
175
165
  ## Bumping the minor version of Chef
176
166
 
@@ -180,20 +170,25 @@ After each "official" stable release we need to bump the minor version. To do th
180
170
 
181
171
  Submit a PR with the changes made by the above.
182
172
 
183
- ## Addressing a Regression
173
+ ## Branch Structure
184
174
 
185
- Sometimes, regressions split through the cracks. Since new functionality is always being added and the minor version is bumped immediately after release, we can't simply roll forward. In this scenario, we'll need to perform a special regression release process. In the example that follows, the stable release with a regression is `1.10.60` while master is currently sitting at `1.11.30`. *Note:* To perform this process, you must be a Chef employee.
175
+ We develop and ship the current release of Chef off the master branch of this repository. Our goal is that master should always be in a shipable state. Previous stable releases of Chef are developed on their own branches named by the major version (ex: chef-13 or chef-12). We do not perform direct development on these stable branches except to resolve build failures. Instead we backport fixes from our master branch to these stable branches. Stable branches receive critical bugfixes and security releases and stable Chef releases are made as necessary for security purposes.
186
176
 
187
- 1. If the regression has not already been addressed, open a Pull Request against master with the fix.
188
- 2. Wait until that Pull Request has been merged and `1.11.31` has passed all the necessary tests and is available in the current channel.
189
- 3. Inspect the Git history and find the `SHA` associated with the Merge Commit for the Pull Request above.
190
- 4. Apply the fix for the regression via a cherry-pick:
191
- 1. Check out the stable release tag: `git checkout v1.10.60`
177
+ ## Backporting Fixes to Stable Releases
178
+
179
+ If there is a critical fix you believe should be backported from master to a stable branch please follow these steps to backport your change:
180
+
181
+ 1. Ask in the #chef-dev channel on [Chef Community Slack](https://community-slack.chef.io/) if this is an appropriate change to backport.
182
+ 3. Inspect the Git history and find the `SHA`(s) associated with the fix.
183
+ 4. Backport the fix to a branch via cherry-pick:
184
+ 1. Check out the stable release branch: `git checkout chef-13`
185
+ 1. Create a branch for your backport: `git checkout -b my_great_bug_packport`
192
186
  2. Cherry Pick the SHA with the fix: `git cherry-pick SHA`
193
187
  3. Address any conflicts (if necessary)
194
- 4. Tag the sha with the appropriate version: `git tag -a v1.10.61 -m "Release v1.10.61"`
195
- 5. Push the new tag to origin: `git push origin --tags`
196
- 5. Log in to Jenkins and trigger a `chef-trigger-release` job specifying the new tag as the `GIT_REF`.
188
+ 5. Push the new branch to your origin: `git push origin`
189
+ 5. Open a PR for your backport
190
+ 1. The PR title should be `Backport: ORIGINAL_PR_TEXT`
191
+ 2. The description should link to the original PR and include a description of why it needs to be backported
197
192
 
198
193
  ## Component Versions
199
194
 
@@ -230,7 +225,7 @@ Chef - A configuration management system
230
225
  | | |
231
226
  |:---------------------|:-----------------------------------------|
232
227
  | **Author:** | Adam Jacob (<adam@chef.io>)
233
- | **Copyright:** | Copyright 2008-2016, Chef Software, Inc.
228
+ | **Copyright:** | Copyright 2008-2018, Chef Software, Inc.
234
229
  | **License:** | Apache License, Version 2.0
235
230
 
236
231
  ```
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
3
  # Author:: Daniel DeLeo (<dan@chef.io>)
4
- # Copyright:: Copyright 2008-2016, Chef Software Inc.
4
+ # Copyright:: Copyright 2008-2018, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,24 +17,24 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
- VERSION = IO.read(File.expand_path("../VERSION", __FILE__)).strip
21
-
22
- require "rubygems"
23
- require "chef/version"
24
- require "chef-config/package_task"
25
- require "rdoc/task"
26
20
  require_relative "tasks/rspec"
27
21
  require_relative "tasks/maintainers"
28
- require_relative "tasks/cbgb"
29
22
  require_relative "tasks/dependencies"
30
23
  require_relative "tasks/announce"
31
24
 
32
- ChefConfig::PackageTask.new(File.expand_path("..", __FILE__), "Chef", "chef") do |package|
33
- package.component_paths = ["chef-config"]
34
- package.generate_version_class = true
35
- package.use_versionstring = true
25
+ # hack the chef-config install to run before the traditional install task
26
+ task :super_install do
27
+ chef_config_path = ::File.join(::File.dirname(__FILE__), "chef-config")
28
+ Dir.chdir(chef_config_path)
29
+ sh("rake install")
36
30
  end
37
31
 
32
+ task install: :super_install
33
+
34
+ # make sure we build the correct gemspec on windows
35
+ gemspec = Gem.win_platform? ? "chef-universal-mingw32" : "chef"
36
+ Bundler::GemHelper.install_tasks name: gemspec
37
+
38
38
  task :pedant, :chef_zero_spec
39
39
 
40
40
  task :build_eventlog do
@@ -56,21 +56,17 @@ begin
56
56
  task.options += ["--display-cop-names", "--no-color"]
57
57
  end
58
58
  rescue LoadError
59
- puts "chefstyle/rubocop is not available. gem install chefstyle to do style checking."
59
+ puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
60
60
  end
61
61
 
62
62
  begin
63
63
  require "yard"
64
- DOC_FILES = [ "README.rdoc", "LICENSE", "spec/tiny_server.rb", "lib/**/*.rb" ]
65
- namespace :yard do
66
- desc "Create YARD documentation"
64
+ DOC_FILES = [ "spec/tiny_server.rb", "lib/**/*.rb" ].freeze
67
65
 
68
- YARD::Rake::YardocTask.new(:html) do |t|
69
- t.files = DOC_FILES
70
- t.options = ["--format", "html"]
71
- end
66
+ YARD::Rake::YardocTask.new(:docs) do |t|
67
+ t.files = DOC_FILES
68
+ t.options = ["--format", "html"]
72
69
  end
73
-
74
70
  rescue LoadError
75
- puts "yard is not available. (sudo) gem install yard to generate yard documentation."
71
+ puts "yard is not available. bundle install first to make sure all dependencies are installed."
76
72
  end
@@ -16,7 +16,7 @@ gemspec.add_dependency "win32-service", "~> 1.0"
16
16
  gemspec.add_dependency "windows-api", "~> 0.4.4"
17
17
  gemspec.add_dependency "wmi-lite", "~> 1.0"
18
18
  gemspec.extensions << "ext/win32-eventlog/Rakefile"
19
- gemspec.files += %w{ext/win32-eventlog/Rakefile ext/win32-eventlog/chef-log.man}
19
+ gemspec.files += Dir.glob("{distro,ext}/**/*")
20
20
 
21
21
  gemspec.executables += %w{ chef-service-manager chef-windows-service }
22
22
 
@@ -5,7 +5,7 @@ Gem::Specification.new do |s|
5
5
  s.name = "chef"
6
6
  s.version = Chef::VERSION
7
7
  s.platform = Gem::Platform::RUBY
8
- s.extra_rdoc_files = ["README.md", "CONTRIBUTING.md", "LICENSE" ]
8
+ s.extra_rdoc_files = ["README.md", "LICENSE" ]
9
9
  s.summary = "A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure."
10
10
  s.description = s.summary
11
11
  s.license = "Apache-2.0"
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
37
37
  s.add_dependency "plist", "~> 3.2"
38
38
  s.add_dependency "iniparse", "~> 1.4"
39
39
  s.add_dependency "addressable"
40
- s.add_dependency "iso8601", "~> 0.9.1"
40
+ s.add_dependency "iso8601", "~> 0.12.1"
41
41
 
42
42
  # Audit mode requires these, so they are non-developmental dependencies now
43
43
  %w{rspec-core rspec-expectations rspec-mocks}.each { |gem| s.add_dependency gem, "~> 3.5", "< 3.8" }
@@ -58,5 +58,5 @@ Gem::Specification.new do |s|
58
58
  s.executables = %w{ chef-client chef-solo knife chef-shell chef-apply }
59
59
 
60
60
  s.require_paths = %w{ lib }
61
- s.files = %w{Gemfile Rakefile LICENSE README.md CONTRIBUTING.md VERSION} + Dir.glob("{distro,lib,lib-backcompat,tasks,acceptance,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) } + Dir.glob("*.gemspec")
61
+ s.files = %w{Gemfile Rakefile LICENSE README.md} + Dir.glob("{lib,tasks,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) } + Dir.glob("*.gemspec")
62
62
  end
@@ -162,7 +162,7 @@ class Chef
162
162
  event_handlers += Array(Chef::Config[:event_handlers])
163
163
 
164
164
  @events = EventDispatch::Dispatcher.new(*event_handlers)
165
- # TODO it seems like a bad idea to be deletin' other peoples' hashes.
165
+ # @todo it seems like a bad idea to be deletin' other peoples' hashes.
166
166
  @override_runlist = args.delete(:override_runlist)
167
167
  @specific_recipes = args.delete(:specific_recipes)
168
168
  @run_status = Chef::RunStatus.new(nil, events)
@@ -178,7 +178,9 @@ class Chef
178
178
  to_be.each do |tb|
179
179
  return true if value == tb
180
180
  end
181
- raise Exceptions::ValidationFailed, _validation_message(key, "Option #{key} must be equal to one of: #{to_be.join(", ")}! You passed #{value.inspect}.")
181
+ # Ruby will print :something as something, which confuses users so make sure to print them as symbols
182
+ # by inspecting the value instead of just printing it
183
+ raise Exceptions::ValidationFailed, _validation_message(key, "Option #{key} must be equal to one of: #{to_be.map { |v| v.inspect }.join(", ")}! You passed #{value.inspect}.")
182
184
  end
183
185
  end
184
186
 
@@ -49,9 +49,9 @@ class Chef
49
49
 
50
50
  def load_current_resource
51
51
  super
52
- # @todo Chef-13: change this to an exception
52
+ # @todo Chef-15: change this to an exception
53
53
  if code.nil?
54
- Chef::Log.warn "#{new_resource}: No code attribute was given, resource does nothing, this behavior is deprecated and will be removed in Chef-13"
54
+ Chef::Log.warn "#{new_resource}: No code attribute was given, resource does nothing, this behavior is deprecated and will be removed in Chef 15 (April 2019)"
55
55
  end
56
56
  end
57
57
 
@@ -23,7 +23,7 @@ require "chef/version_string"
23
23
 
24
24
  class Chef
25
25
  CHEF_ROOT = File.expand_path("../..", __FILE__)
26
- VERSION = Chef::VersionString.new("13.11.3")
26
+ VERSION = Chef::VersionString.new("13.12.3")
27
27
  end
28
28
 
29
29
  #
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Lamont Granquist (<lamont@chef.io>)
3
- # Copyright:: Copyright 2014-2016, Chef Software, Inc.
3
+ # Copyright:: Copyright 2014-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -24,13 +24,19 @@ describe Chef::HTTP::Simple do
24
24
  include ChefHTTPShared
25
25
 
26
26
  let(:http_client) { described_class.new(source) }
27
- let(:http_client_disable_gzip) { described_class.new(source, { :disable_gzip => true } ) }
27
+ let(:http_client_disable_gzip) { described_class.new(source, { disable_gzip: true } ) }
28
+
29
+ before(:all) do
30
+ start_tiny_server(RequestTimeout: 1)
31
+ end
28
32
 
29
33
  before(:each) do
30
- start_tiny_server
34
+ Chef::Config[:rest_timeout] = 2
35
+ Chef::Config[:http_retry_delay] = 1
36
+ Chef::Config[:http_retry_count] = 2
31
37
  end
32
38
 
33
- after(:each) do
39
+ after(:all) do
34
40
  stop_tiny_server
35
41
  end
36
42
 
@@ -46,10 +52,10 @@ describe Chef::HTTP::Simple do
46
52
  end
47
53
 
48
54
  shared_examples_for "validates content length and throws an exception" do
49
- it "successfully downloads a streaming request" do
55
+ it "a streaming request throws a content length exception" do
50
56
  expect { http_client.streaming_request(source) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
51
57
  end
52
- it "successfully does a non-streaming GET request" do
58
+ it "a non-streaming GET request throws a content length exception" do
53
59
  expect { http_client.get(source) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
54
60
  end
55
61
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Chisamore (<schisamo@chef.io>)
3
- # Copyright:: Copyright 2011-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2011-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,6 +28,9 @@ describe Chef::Resource::RemoteFile do
28
28
  before(:each) do
29
29
  @old_file_cache = Chef::Config[:file_cache_path]
30
30
  Chef::Config[:file_cache_path] = file_cache_path
31
+ Chef::Config[:rest_timeout] = 2
32
+ Chef::Config[:http_retry_delay] = 1
33
+ Chef::Config[:http_retry_count] = 2
31
34
  end
32
35
 
33
36
  after(:each) do
@@ -55,11 +58,11 @@ describe Chef::Resource::RemoteFile do
55
58
  let(:default_mode) { (0666 & ~File.umask).to_s(8) }
56
59
 
57
60
  context "when fetching files over HTTP" do
58
- before(:each) do
59
- start_tiny_server
61
+ before(:all) do
62
+ start_tiny_server(RequestTimeout: 1)
60
63
  end
61
64
 
62
- after(:each) do
65
+ after(:all) do
63
66
  stop_tiny_server
64
67
  end
65
68
 
@@ -97,21 +100,22 @@ describe Chef::Resource::RemoteFile do
97
100
 
98
101
  context "when fetching files over HTTPS" do
99
102
 
100
- before(:each) do
103
+ before(:all) do
101
104
  cert_text = File.read(File.expand_path("ssl/chef-rspec.cert", CHEF_SPEC_DATA))
102
105
  cert = OpenSSL::X509::Certificate.new(cert_text)
103
106
  key_text = File.read(File.expand_path("ssl/chef-rspec.key", CHEF_SPEC_DATA))
104
107
  key = OpenSSL::PKey::RSA.new(key_text)
105
108
 
106
- server_opts = { :SSLEnable => true,
107
- :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
108
- :SSLCertificate => cert,
109
- :SSLPrivateKey => key }
109
+ server_opts = { SSLEnable: true,
110
+ SSLVerifyClient: OpenSSL::SSL::VERIFY_NONE,
111
+ SSLCertificate: cert,
112
+ SSLPrivateKey: key,
113
+ RequestTimeout: 1 }
110
114
 
111
115
  start_tiny_server(server_opts)
112
116
  end
113
117
 
114
- after(:each) do
118
+ after(:all) do
115
119
  stop_tiny_server
116
120
  end
117
121
 
@@ -295,11 +299,11 @@ describe Chef::Resource::RemoteFile do
295
299
  end
296
300
 
297
301
  context "when dealing with content length checking" do
298
- before(:each) do
299
- start_tiny_server
302
+ before(:all) do
303
+ start_tiny_server(RequestTimeout: 1)
300
304
  end
301
305
 
302
- after(:each) do
306
+ after(:all) do
303
307
  stop_tiny_server
304
308
  end
305
309
 
@@ -356,7 +360,7 @@ describe Chef::Resource::RemoteFile do
356
360
 
357
361
  it "should raise ContentLengthMismatch" do
358
362
  expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
359
- #File.should_not exist(path) # XXX: CHEF-5081
363
+ # File.should_not exist(path) # XXX: CHEF-5081
360
364
  end
361
365
  end
362
366
 
@@ -369,7 +373,7 @@ describe Chef::Resource::RemoteFile do
369
373
 
370
374
  it "should raise ContentLengthMismatch" do
371
375
  expect { resource.run_action(:create) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
372
- #File.should_not exist(path) # XXX: CHEF-5081
376
+ # File.should_not exist(path) # XXX: CHEF-5081
373
377
  end
374
378
  end
375
379