chef-dk 1.6.11 → 2.0.26

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +25 -38
  3. data/Gemfile.lock +199 -199
  4. data/README.md +4 -2
  5. data/Rakefile +1 -2
  6. data/acceptance/Gemfile +1 -1
  7. data/acceptance/Gemfile.lock +23 -21
  8. data/chef-dk.gemspec +4 -6
  9. data/lib/chef-dk/builtin_commands.rb +1 -1
  10. data/lib/chef-dk/chef_runner.rb +1 -1
  11. data/lib/chef-dk/cli.rb +1 -0
  12. data/lib/chef-dk/command/generate.rb +5 -2
  13. data/lib/chef-dk/command/generator_commands/helpers.rb +36 -0
  14. data/lib/chef-dk/command/generator_commands/{lwrp.rb → resource.rb} +4 -4
  15. data/lib/chef-dk/command/update.rb +11 -18
  16. data/lib/chef-dk/command/verify.rb +1 -16
  17. data/lib/chef-dk/commands_map.rb +3 -3
  18. data/lib/chef-dk/policyfile/artifactory_cookbook_source.rb +102 -0
  19. data/lib/chef-dk/policyfile/cookbook_location_specification.rb +2 -2
  20. data/lib/chef-dk/policyfile/cookbook_sources.rb +1 -0
  21. data/lib/chef-dk/policyfile/dsl.rb +10 -0
  22. data/lib/chef-dk/policyfile/solution_dependencies.rb +15 -1
  23. data/lib/chef-dk/policyfile_lock.rb +1 -1
  24. data/lib/chef-dk/policyfile_services/install.rb +30 -2
  25. data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +1 -0
  26. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +1 -0
  27. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +2 -2
  28. data/lib/chef-dk/skeletons/code_generator/files/default/delivery-config.json +3 -0
  29. data/lib/chef-dk/skeletons/code_generator/files/default/delivery-project.toml +1 -1
  30. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +1 -0
  31. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +2 -1
  32. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +1 -0
  33. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +1 -0
  34. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +1 -0
  35. data/lib/chef-dk/skeletons/code_generator/metadata.rb +3 -2
  36. data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +1 -1
  37. data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +1 -0
  38. data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +7 -12
  39. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +1 -0
  40. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +1 -0
  41. data/lib/chef-dk/skeletons/code_generator/recipes/helpers.rb +21 -0
  42. data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +1 -0
  43. data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +1 -0
  44. data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +1 -0
  45. data/lib/chef-dk/skeletons/code_generator/recipes/{lwrp.rb → resource.rb} +1 -11
  46. data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +3 -3
  47. data/lib/chef-dk/skeletons/code_generator/templates/default/helpers.rb.erb +39 -0
  48. data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +1 -1
  49. data/lib/chef-dk/skeletons/code_generator/templates/default/resource.rb.erb +1 -0
  50. data/lib/chef-dk/version.rb +2 -2
  51. data/omnibus_overrides.rb +14 -12
  52. data/spec/unit/command/generator_commands/cookbook_spec.rb +7 -1
  53. data/spec/unit/command/generator_commands/helpers_spec.rb +31 -0
  54. data/spec/unit/command/generator_commands/{lwrp_spec.rb → resource_spec.rb} +5 -5
  55. data/spec/unit/command/install_spec.rb +2 -2
  56. data/spec/unit/command/update_spec.rb +11 -3
  57. data/spec/unit/command/verify_spec.rb +2 -1
  58. data/spec/unit/policyfile/artifactory_cookbook_source_spec.rb +59 -0
  59. data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +1 -1
  60. data/spec/unit/policyfile/solution_dependencies_spec.rb +25 -0
  61. data/spec/unit/policyfile_demands_spec.rb +2 -1
  62. data/spec/unit/policyfile_lock_build_spec.rb +23 -21
  63. data/spec/unit/policyfile_lock_install_spec.rb +2 -2
  64. data/spec/unit/policyfile_lock_validation_spec.rb +3 -3
  65. data/spec/unit/policyfile_services/export_repo_spec.rb +6 -6
  66. data/spec/unit/policyfile_services/install_spec.rb +1 -1
  67. data/spec/unit/policyfile_services/update_spec.rb +143 -0
  68. data/tasks/announce.rb +3 -2
  69. data/tasks/dependencies.rb +35 -111
  70. data/tasks/github_changelog_generator.rb +0 -3
  71. data/tasks/templates/prerelease.md.erb +1 -1
  72. data/tasks/templates/release.md.erb +1 -1
  73. metadata +20 -38
  74. data/lib/chef-dk/skeletons/code_generator/templates/default/provider.rb.erb +0 -0
  75. data/spec/unit/gemfile_util_spec.rb +0 -41
  76. data/spec/unit/helpers_spec.rb +0 -120
  77. data/spec/unit/tasks/helpers_spec.rb +0 -75
  78. data/tasks/bin/bundle-platform +0 -19
  79. data/tasks/bin/create-override-gemfile +0 -110
  80. data/tasks/bundle.rb +0 -96
  81. data/tasks/bundle_util.rb +0 -110
  82. data/tasks/gemfile_util.rb +0 -435
  83. data/tasks/helpers.rb +0 -47
  84. data/version_policy.rb +0 -142
@@ -1,47 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) 2016 Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- # Putting this method in a module so it is easier to test
19
- module RakeDependenciesTaskHelpers
20
- def update_gemfile_from_stable(gemfile, product_name, gemfile_name, version_prefix = "")
21
- version = get_latest_version_for(product_name)
22
- version = "#{version_prefix}#{version}"
23
- found = gemfile.sub!(/^(\s*gem "#{gemfile_name}", github: "chef\/#{gemfile_name}", branch: ")([^"]*)(")$/m) do
24
- if $2 != "#{version}"
25
- puts "Setting #{product_name} version in Gemfile to #{version} (was #{$2})"
26
- else
27
- puts "#{product_name} version in Gemfile already at latest stable (#{$2})"
28
- end
29
- "#{$1}#{version}#{$3}"
30
- end
31
- unless found
32
- raise "Gemfile does not have a line of the form 'gem \"#{gemfile_name}\", github: \"chef/#{gemfile_name}\", branch: \"<version>\"', so we didn't update it to latest stable (#{version})."
33
- end
34
- gemfile
35
- end
36
-
37
- def get_latest_version_for(product_name, channel_name = :stable)
38
- require "mixlib/install"
39
- puts "Getting latest '#{channel_name}' channel #{product_name} version ..."
40
- options = {
41
- channel: channel_name.to_sym,
42
- product_version: :latest,
43
- product_name: product_name,
44
- }
45
- Mixlib::Install.new(options).artifact_info.first.version
46
- end
47
- end
@@ -1,142 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) 2016-2017, Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- # Explicit omnibus overrides.
19
- OMNIBUS_OVERRIDES = {
20
- :bundler => "1.16.0",
21
- :rubygems => "2.6.14",
22
- # Lower level library pins
23
- # These are the latest version in omnibus-software as of 2017-11-28:
24
- "libffi" => "3.2.1",
25
- "libiconv" => "1.15",
26
- "liblzma" => "5.2.3",
27
- "libxml2" => "2.9.5",
28
- "libxslt" => "1.1.30",
29
- "libyaml" => "0.1.7",
30
- "makedepend" => "1.0.5",
31
- "ncurses" => "5.9",
32
- "openssl" => "1.0.2m",
33
- "pkg-config-lite" => "0.28-1",
34
- "ruby" => "2.3.5",
35
- "util-macros" => "1.19.0",
36
- "xproto" => "7.0.28",
37
- "zlib" => "1.2.11",
38
- ## according to comment in omnibus-sw, the latest versions of libtool don't work on solaris
39
- # https://github.com/chef/omnibus-software/blob/aefb7e79d29ca746c3f843673ef5e317fa3cba54/config/software/libtool.rb#L23
40
- "libtool" => "2.4.2",
41
- # Leave dev-kit pinned to 4.5 on 32-bit, because 4.7 is 20MB larger and we don't want
42
- # to unnecessarily make the client any fatter. (Since it's different between
43
- # 32 and 64, we have to do it in the project file still.)
44
- # "ruby-windows-devkit" => "4.5.2-20111229-1559",
45
- "ruby-windows-devkit-bash" => "3.1.23-4-msys-1.0.18",
46
- # The windows dependency (libzmq4x-windows) only has 1 version so far in
47
- # software def so we don't need to override that
48
- "libzmq" => "4.0.7",
49
- }
50
-
51
- #
52
- # rake dependencies:update_omnibus_overrides (tasks/dependencies.rb) reads this
53
- # and modifies omnibus_overrides.rb
54
- #
55
- # The left side is the software definition name, and the right side is the
56
- # name of the rubygem (gem list -re <rubygem name> gets us the latest version).
57
- #
58
- OMNIBUS_RUBYGEMS_AT_LATEST_VERSION = {
59
- # rubygems: "rubygems-update",
60
- # bundler: "bundler", # pinned to 1.12.5 until we figure out how we're failing on 1.13.0
61
- }
62
-
63
- #
64
- # rake dependencies:check (tasks/dependencies.rb) uses this as a list of gems
65
- # that are allowed to be outdated according to `bundle updated`
66
- #
67
- # Once you decide that the list of outdated gems is OK, you can just
68
- # add gems to the output of bundle outdated here and we'll parse it to get the
69
- # list of outdated gems.
70
- #
71
- ACCEPTABLE_OUTDATED_GEMS = [
72
- "activesupport", # anchored by outdated google-api-client
73
- "celluloid", # ridley requires 0.16.x
74
- "celluloid-io", # ridley requires 0.16.x
75
- "cucumber-core", # Until cucumber 2.0
76
- "fog-cloudatcost", # fog restricts this for probably no good reason
77
- "fog-dynect", # fog restricts this for probably no good reason
78
- "fog-google", # fog-google 0.2+ requires Ruby 2.0+, fog 2.0.0 will include it
79
- "google-api-client", # chef-provisioning-fog restricts to < 0.9 for presently unknown reasons
80
- "json", # inspec pins this because Ruby 2.0, no eta on fix
81
- "rbvmomi", # fog-vsphere restricts this to a patch version, not sure why
82
- "retriable", # anchored by outdated google-api-client
83
- "rubocop", # cookstyle pins older releases by design
84
- "slop", # expected to disappear with pry 0.11
85
- "timers", # anchored by outdated celluloid
86
- "github_changelog_generator", # we use a forked version that differs from rubygems
87
- "addressable", # sawyer limits to < 2.6
88
- "faraday", # ridely restrcits this 0.9.x
89
- "thor", # berkshelf restricts this to < 0.19.2
90
- "nokogiri", # fog limits to ~> 1.5
91
- "mixlib-install", # test kitchen limits to less than 3.x
92
-
93
- # We have a task called update_stable_channel_gems which scans and pins to the
94
- # latest released chef/chef-config/opscode-pushy-client but it pulls from the
95
- # chef repo instead of from rubygems. Bundler currently considers any git
96
- # source at the same version (or lower) than one available from rubygems as
97
- # outdated and hence fails the outdated gem test, confusing Julia bot.
98
-
99
- # Therefore.. turn checks on both of them off. If and when the rake task for
100
- # update_stable_channel_gems changes, this exclusion can be revisited.
101
- "chef",
102
- "chef-config",
103
- "opscode-pushy-client",
104
- "mixlib-cli",
105
-
106
- ]
107
-
108
- #
109
- # Some gems are part of our bundle (must be installed) but not important
110
- # enough to lock. We allow `bundle install` in test-kitchen, berks, etc.
111
- # to use their own versions of these.
112
- #
113
- # This mainly tells you which gems `chef verify` allows you to install and
114
- # run.
115
- #
116
- GEMS_ALLOWED_TO_FLOAT = [
117
- "rubocop", # different projects disagree in their dev dependencies
118
- "unicode-display_width", # dep of rubocop
119
- "powerpack", # dep of rubocop
120
- "cookstyle", # has a runtime dep on rubocop
121
- ]
122
-
123
- #
124
- # The list of groups we install without: this drives both the `bundle install`
125
- # we do in chef-dk, and the `bundle check` we do to ensure installed gems dont
126
- # have extra deps hiding in their Gemfiles.
127
- #
128
- INSTALL_WITHOUT_GROUPS = %w{
129
- changelog
130
- compat_testing
131
- deploy
132
- development
133
- docgen
134
- guard
135
- integration
136
- maintenance
137
- test
138
- tools
139
- travis
140
- style
141
- simulator
142
- }