poise-python 1.6.0 → 1.7.0

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 (43) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -1
  3. data/.travis.yml +25 -28
  4. data/.yo-rc.json +7 -0
  5. data/CHANGELOG.md +6 -0
  6. data/Gemfile +1 -1
  7. data/lib/poise_python/python_providers/system.rb +3 -0
  8. data/lib/poise_python/resources/python_package.rb +33 -14
  9. data/lib/poise_python/resources/python_runtime.rb +1 -0
  10. data/lib/poise_python/resources/python_runtime_pip.rb +24 -2
  11. data/lib/poise_python/resources/python_runtime_test.rb +5 -0
  12. data/lib/poise_python/version.rb +1 -1
  13. data/poise-python.gemspec +3 -2
  14. data/test/cookbook/recipes/default.rb +27 -4
  15. data/test/gemfiles/{chef-12.13.gemfile → chef-12.20.gemfile} +2 -5
  16. data/test/gemfiles/{chef-12.12.gemfile → chef-12.21.gemfile} +2 -5
  17. data/test/gemfiles/chef-12.gemfile +1 -1
  18. data/test/gemfiles/chef-13.0.gemfile +1 -1
  19. data/test/gemfiles/{chef-12.1.gemfile → chef-13.1.gemfile} +2 -6
  20. data/test/gemfiles/{chef-12.2.gemfile → chef-13.2.gemfile} +2 -6
  21. data/test/gemfiles/chef-13.3.gemfile +19 -0
  22. data/test/gemfiles/chef-13.4.gemfile +19 -0
  23. data/test/gemfiles/chef-13.5.gemfile +19 -0
  24. data/test/gemfiles/chef-13.6.gemfile +19 -0
  25. data/test/gemfiles/chef-13.8.gemfile +19 -0
  26. data/test/gemfiles/chef-13.gemfile +1 -1
  27. data/test/gemfiles/chef-14.0.gemfile +19 -0
  28. data/test/gemfiles/chef-14.gemfile +19 -0
  29. data/test/gemfiles/master.gemfile +11 -8
  30. data/test/integration/default/serverspec/default_spec.rb +29 -1
  31. data/test/spec/python_providers/scl_spec.rb +2 -2
  32. data/test/spec/python_providers/system_spec.rb +5 -5
  33. data/test/spec/resources/python_package_spec.rb +15 -8
  34. metadata +33 -35
  35. data/test/gemfiles/chef-12.10.gemfile +0 -23
  36. data/test/gemfiles/chef-12.11.gemfile +0 -23
  37. data/test/gemfiles/chef-12.3.gemfile +0 -23
  38. data/test/gemfiles/chef-12.4.gemfile +0 -24
  39. data/test/gemfiles/chef-12.5.gemfile +0 -23
  40. data/test/gemfiles/chef-12.6.gemfile +0 -23
  41. data/test/gemfiles/chef-12.7.gemfile +0 -23
  42. data/test/gemfiles/chef-12.8.gemfile +0 -23
  43. data/test/gemfiles/chef-12.9.gemfile +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ce39dfd6c5b8b8003f462ba7893cfb9ef0ae169f
4
- data.tar.gz: 8ffe437521b352b6921d35312a8be893d85772ad
2
+ SHA256:
3
+ metadata.gz: d14756918657f636aef76d1a3be5be60e9ec7f856ea5aa66a7263ea78e7a107f
4
+ data.tar.gz: 1c0295be2bb199bc1470b136a327e899fd25280fe60bd44883cc7f8aaf36e964
5
5
  SHA512:
6
- metadata.gz: de2552c9e02388871d91dd02a10655aeb975be311fc4518ab594ffcd6e32e674275ca907bd5d8a978473634fabf8eaeefaec4a07c75255204fdb838d814dd9aa
7
- data.tar.gz: cc89c455a9e4a13353e4fb1b79bbe6a3c3daa24bf3c466f1c39789d710718b0511debd9a66b98fe28ee38a546537e367950469e3d4525ac03331b477d3761cfa
6
+ metadata.gz: 338ba450cb8b34621cfda533300bb0959c20f99429eb58e4bdff6b2df6b7498d1529b0c98f6f6a57e92d2f75196cdafb96a58e87ccb7e4d79d15947aa0b333dc
7
+ data.tar.gz: ab1070572da814fde7cf558e5534803de1c29b43b3d50d36b94ed627afe918fc74c146490859a67155c40eadfc5b5997b3d31da901074ac7608b4b6ad363bcce
data/.gitignore CHANGED
@@ -4,8 +4,8 @@ test/gemfiles/*.lock
4
4
  .kitchen/
5
5
  .kitchen.local.yml
6
6
  test/docker/
7
+ test/ec2/
7
8
  coverage/
8
9
  pkg/
9
10
  .yardoc/
10
11
  doc/
11
-
@@ -1,3 +1,4 @@
1
+ dist: trusty
1
2
  sudo: false
2
3
  cache: bundler
3
4
  language: ruby
@@ -18,34 +19,12 @@ matrix:
18
19
  include:
19
20
  - rvm: 2.3.1
20
21
  gemfile: test/gemfiles/chef-12.gemfile
21
- - rvm: 2.4.1
22
+ - rvm: 2.4.3
22
23
  gemfile: test/gemfiles/chef-13.gemfile
23
- - rvm: 2.1.4
24
- gemfile: test/gemfiles/chef-12.1.gemfile
25
- - rvm: 2.1.4
26
- gemfile: test/gemfiles/chef-12.2.gemfile
27
- - rvm: 2.1.4
28
- gemfile: test/gemfiles/chef-12.3.gemfile
29
- - rvm: 2.1.6
30
- gemfile: test/gemfiles/chef-12.4.gemfile
31
- - rvm: 2.1.6
32
- gemfile: test/gemfiles/chef-12.5.gemfile
33
- - rvm: 2.1.6
34
- gemfile: test/gemfiles/chef-12.6.gemfile
35
- - rvm: 2.1.6
36
- gemfile: test/gemfiles/chef-12.7.gemfile
37
- - rvm: 2.1.6
38
- gemfile: test/gemfiles/chef-12.8.gemfile
39
- - rvm: 2.1.8
40
- gemfile: test/gemfiles/chef-12.9.gemfile
41
- - rvm: 2.1.8
42
- gemfile: test/gemfiles/chef-12.10.gemfile
43
- - rvm: 2.1.8
44
- gemfile: test/gemfiles/chef-12.11.gemfile
45
- - rvm: 2.1.8
46
- gemfile: test/gemfiles/chef-12.12.gemfile
47
- - rvm: 2.1.9
48
- gemfile: test/gemfiles/chef-12.13.gemfile
24
+ - rvm: 2.5.1
25
+ gemfile: test/gemfiles/chef-14.gemfile
26
+ - rvm: 2.5.1
27
+ gemfile: test/gemfiles/master.gemfile
49
28
  - rvm: 2.3.1
50
29
  gemfile: test/gemfiles/chef-12.14.gemfile
51
30
  - rvm: 2.3.1
@@ -58,7 +37,25 @@ matrix:
58
37
  gemfile: test/gemfiles/chef-12.18.gemfile
59
38
  - rvm: 2.3.1
60
39
  gemfile: test/gemfiles/chef-12.19.gemfile
40
+ - rvm: 2.3.1
41
+ gemfile: test/gemfiles/chef-12.20.gemfile
42
+ - rvm: 2.3.1
43
+ gemfile: test/gemfiles/chef-12.21.gemfile
61
44
  - rvm: 2.4.1
62
45
  gemfile: test/gemfiles/chef-13.0.gemfile
63
46
  - rvm: 2.4.1
64
- gemfile: test/gemfiles/master.gemfile
47
+ gemfile: test/gemfiles/chef-13.1.gemfile
48
+ - rvm: 2.4.1
49
+ gemfile: test/gemfiles/chef-13.2.gemfile
50
+ - rvm: 2.4.1
51
+ gemfile: test/gemfiles/chef-13.3.gemfile
52
+ - rvm: 2.4.2
53
+ gemfile: test/gemfiles/chef-13.4.gemfile
54
+ - rvm: 2.4.2
55
+ gemfile: test/gemfiles/chef-13.5.gemfile
56
+ - rvm: 2.4.2
57
+ gemfile: test/gemfiles/chef-13.6.gemfile
58
+ - rvm: 2.4.3
59
+ gemfile: test/gemfiles/chef-13.8.gemfile
60
+ - rvm: 2.5.1
61
+ gemfile: test/gemfiles/chef-14.0.gemfile
@@ -0,0 +1,7 @@
1
+ {
2
+ "generator-poise": {
3
+ "name": "poise-python",
4
+ "coobookName": "auto",
5
+ "created": true
6
+ }
7
+ }
@@ -1,5 +1,11 @@
1
1
  # Poise-Python Changelog
2
2
 
3
+ ## v1.7.0
4
+
5
+ * Support for Pip 10.
6
+ * Support for Chef 14.
7
+ * System package info for Ubuntu 18.04 and Debian 9, 10.
8
+
3
9
  ## v1.6.0
4
10
 
5
11
  * Improved handling for Python 3.3.
data/Gemfile CHANGED
@@ -23,7 +23,7 @@ def dev_gem(name, path: File.join('..', name), github: nil)
23
23
  if File.exist?(path)
24
24
  gem name, path: path
25
25
  elsif github
26
- gem name, github: github
26
+ gem name, git: "https://github.com/#{github}.git"
27
27
  end
28
28
  end
29
29
 
@@ -28,11 +28,14 @@ module PoisePython
28
28
  provides(:system)
29
29
  packages('python', {
30
30
  debian: {
31
+ '~> 10.0' => %w{python3.6 python2.7},
32
+ '~> 9.0' => %w{python3.5 python2.7},
31
33
  '~> 8.0' => %w{python3.4 python2.7},
32
34
  '~> 7.0' => %w{python3.2 python2.7 python2.6},
33
35
  '~> 6.0' => %w{python3.1 python2.6 python2.5},
34
36
  },
35
37
  ubuntu: {
38
+ '18.04' => %w{python3.6 python2.7},
36
39
  '16.04' => %w{python3.5 python2.7},
37
40
  '14.04' => %w{python3.4 python2.7},
38
41
  '12.04' => %w{python3.2 python2.7},
@@ -38,14 +38,19 @@ import sys
38
38
 
39
39
  import pip
40
40
  # Don't use pkg_resources because I don't want to require it before this anyway.
41
- if re.match(r'0|1|6\\.0', pip.__version__):
41
+ if re.match(r'0\\.|1\\.|6\\.0', pip.__version__):
42
42
  sys.stderr.write('The python_package resource requires pip >= 6.1.0, currently '+pip.__version__+'\\n')
43
43
  sys.exit(1)
44
44
 
45
- from pip.commands import InstallCommand
46
- from pip.index import PackageFinder
47
- from pip.req import InstallRequirement
48
-
45
+ try:
46
+ from pip.commands import InstallCommand
47
+ from pip.index import PackageFinder
48
+ from pip.req import InstallRequirement
49
+ except ImportError:
50
+ # Pip 10 moved all internals to their own package.
51
+ from pip._internal.commands import InstallCommand
52
+ from pip._internal.index import PackageFinder
53
+ from pip._internal.req import InstallRequirement
49
54
 
50
55
  packages = {}
51
56
  cmd = InstallCommand()
@@ -113,6 +118,12 @@ EOH
113
118
  # @return [String, Integer, nil]
114
119
  attribute(:user, kind_of: [String, Integer, NilClass], default: lazy { default_user })
115
120
 
121
+ # This should probably be in the base class but ¯\_(ツ)_/¯.
122
+ # @!attribute allow_downgrade
123
+ # Allow downgrading the package.
124
+ # @return [Boolean]
125
+ attribute(:allow_downgrade, kind_of: [TrueClass, FalseClass], default: false)
126
+
116
127
  def initialize(*args)
117
128
  super
118
129
  # For older Chef.
@@ -187,6 +198,7 @@ EOH
187
198
  @current_resource = new_resource.class.new(new_resource.name, run_context)
188
199
  current_resource.package_name(new_resource.package_name)
189
200
  check_package_versions(current_resource)
201
+ Chef::Log.debug("[#{new_resource}] Current version: #{current_resource.version}, candidate version: #{@candidate_version}")
190
202
  current_resource
191
203
  end
192
204
 
@@ -200,7 +212,7 @@ EOH
200
212
  def check_package_versions(resource, version=new_resource.version)
201
213
  version_data = Hash.new {|hash, key| hash[key] = {current: nil, candidate: nil} }
202
214
  # Get the version for everything currently installed.
203
- list = pip_command('list', :list).stdout
215
+ list = pip_command('list', :list, [], environment: {'PIP_FORMAT' => 'json'}).stdout
204
216
  parse_pip_list(list).each do |name, current|
205
217
  # Merge current versions in to the data.
206
218
  version_data[name][:current] = current
@@ -347,15 +359,22 @@ EOH
347
359
  # @param text [String] Output to parse.
348
360
  # @return [Hash<String, String>]
349
361
  def parse_pip_list(text)
350
- text.split(/\r?\n/).inject({}) do |memo, line|
351
- # Example of a line:
352
- # boto (2.25.0)
353
- if md = line.match(/^(\S+)\s+\(([^\s,]+).*\)$/i)
354
- memo[parse_package_name(md[1])] = md[2]
355
- else
356
- Chef::Log.debug("[#{new_resource}] Unparsable line in pip list: #{line}")
362
+ if text[0] == '['
363
+ # Pip 9 or newer, so it understood $PIP_FORMAT=json.
364
+ Chef::JSONCompat.parse(text).each_with_object({}) do |data, memo|
365
+ memo[parse_package_name(data['name'])] = data['version']
366
+ end
367
+ else
368
+ # Pip 8 or earlier, which doesn't support JSON output.
369
+ text.split(/\r?\n/).each_with_object({}) do |line, memo|
370
+ # Example of a line:
371
+ # boto (2.25.0)
372
+ if md = line.match(/^(\S+)\s+\(([^\s,]+).*\)$/i)
373
+ memo[parse_package_name(md[1])] = md[2]
374
+ else
375
+ Chef::Log.debug("[#{new_resource}] Unparsable line in pip list: #{line}")
376
+ end
357
377
  end
358
- memo
359
378
  end
360
379
  end
361
380
 
@@ -51,6 +51,7 @@ module PoisePython
51
51
  # of https://bootstrap.pypa.io/get-pip.py is used. If you want to skip
52
52
  # the pip installer entirely, set {#pip_version} to `false`.
53
53
  # @return [String]
54
+ # If this default value changes, fix ths 2.6-compat logic in python_runtime_pip.
54
55
  attribute(:get_pip_url, kind_of: String, default: 'https://bootstrap.pypa.io/get-pip.py')
55
56
  # @!attribute pip_version
56
57
  # Version of pip to install. If set to `true`, the latest available
@@ -30,6 +30,12 @@ module PoisePython
30
30
  # Earliest version of pip we will try upgrading in-place.
31
31
  PIP_INPLACE_VERSION = Gem::Version.create('7.0.0')
32
32
 
33
+ # Version to trigger the automatic get-pip.py URL fixup on for 2.6 compat.
34
+ PY26_FIXUP_VERSION = Gem::Version.create('2.7')
35
+
36
+ # Replacement URL for 2.6 compat.
37
+ PY26_FIXUP_GETPIP_URL = 'https://bootstrap.pypa.io/2.6/get-pip.py'
38
+
33
39
  # A `python_runtime_pip` resource to install/upgrade pip itself. This is
34
40
  # used internally by `python_runtime` and is not intended to be a public
35
41
  # API.
@@ -103,15 +109,30 @@ module PoisePython
103
109
  #
104
110
  # @return [void]
105
111
  def bootstrap_pip
112
+ # If we're on Python 2.6 and using the default get_pip_url, we need to
113
+ # switch to a 2.6-compatible version. This kind of sucks because it
114
+ # makes the default a magic value but it seems like the safest option.
115
+ get_pip_url = new_resource.get_pip_url
116
+ if get_pip_url == 'https://bootstrap.pypa.io/get-pip.py'
117
+ python_version_cmd = poise_shell_out!([new_resource.parent.python_binary, '--version'], environment: new_resource.parent.python_environment)
118
+ # Python 2 puts the output on stderr, 3 is on stdout. You can't make this shit up.
119
+ python_version = (python_version_cmd.stdout + python_version_cmd.stderr)[/Python (\S+)/, 1]
120
+ Chef::Log.debug("[#{new_resource}] Checking for Python 2.6 fixup of get-pip URL, found Python version #{python_version || '(unknown)'}")
121
+ if python_version && Gem::Version.create(python_version) < PY26_FIXUP_VERSION
122
+ Chef::Log.debug("[#{new_resource}] Detected old Python, enabling fixup")
123
+ get_pip_url = PY26_FIXUP_GETPIP_URL
124
+ end
125
+ end
126
+
106
127
  # Always updated if we have hit this point.
107
- converge_by("Bootstrapping pip #{new_resource.version || 'latest'} from #{new_resource.get_pip_url}") do
128
+ converge_by("Bootstrapping pip #{new_resource.version || 'latest'} from #{get_pip_url}") do
108
129
  # Use a temp file to hold the installer.
109
130
  # Put `Tempfile.create` back when Chef on Windows has a newer Ruby.
110
131
  # Tempfile.create(['get-pip', '.py']) do |temp|
111
132
  temp = Tempfile.new(['get-pip', '.py'])
112
133
  begin
113
134
  # Download the get-pip.py.
114
- get_pip = Chef::HTTP.new(new_resource.get_pip_url).get('')
135
+ get_pip = Chef::HTTP.new(get_pip_url).get('')
115
136
  # Write it to the temp file.
116
137
  temp.write(get_pip)
117
138
  # Close the file to flush it.
@@ -165,6 +186,7 @@ module PoisePython
165
186
  action :upgrade
166
187
  parent_python new_resource.parent
167
188
  version new_resource.version if new_resource.version
189
+ allow_downgrade true
168
190
  end
169
191
  end
170
192
  end
@@ -70,6 +70,10 @@ module PoisePython
70
70
  test_version
71
71
 
72
72
  # Test python_package.
73
+ python_package 'argparse' do
74
+ # Needed for sqlparse but not in the stdlib until 2.7.
75
+ python new_resource.name
76
+ end
73
77
  python_package 'sqlparse remove before' do
74
78
  action :remove
75
79
  package_name 'sqlparse'
@@ -176,6 +180,7 @@ EOH
176
180
  end
177
181
  test_import('docopt', python: nil, virtualenv: test_venv, user: test_user)
178
182
  end
183
+
179
184
  end
180
185
  end
181
186
 
@@ -16,5 +16,5 @@
16
16
 
17
17
 
18
18
  module PoisePython
19
- VERSION = '1.6.0'
19
+ VERSION = '1.7.0'
20
20
  end
@@ -26,14 +26,15 @@ Gem::Specification.new do |spec|
26
26
  spec.description = "A Chef cookbook for managing Python installations."
27
27
  spec.summary = spec.description
28
28
  spec.homepage = 'https://github.com/poise/poise-python'
29
- spec.license = 'Apache 2.0'
29
+ spec.license = 'Apache-2.0'
30
+ spec.metadata['platforms'] = 'ubuntu debian redhat centos fedora amazon windows'
30
31
 
31
32
  spec.files = `git ls-files`.split($/)
32
33
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
33
34
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
34
35
  spec.require_paths = %w{lib}
35
36
 
36
- spec.add_dependency 'chef', '>= 12.1', '< 14'
37
+ spec.add_dependency 'chef', '>= 12.14', '< 15'
37
38
  spec.add_dependency 'halite', '~> 1.0'
38
39
  spec.add_dependency 'poise', '~> 2.7'
39
40
  spec.add_dependency 'poise-languages', '~> 2.0'
@@ -55,24 +55,47 @@ tests_to_run = value_for_platform(
55
55
  when 'pypy'
56
56
  python_runtime_test 'pypy'
57
57
  when 'pip'
58
- # Specific test for pip reversion working correctly.
58
+ # Some pip-related tests that I don't need to run on every Python version.
59
+ # Pip does plenty of testing on different Python versions and I already touch
60
+ # the basics.
59
61
  pip_provider = value_for_platform_family(default: :portable_pypy, windows: :msi)
62
+ # Check the baseline state, should pull the latest pip.
60
63
  python_runtime 'pip1' do
61
- pip_version '7.1.2'
62
64
  provider pip_provider
63
65
  options path: '/test_pip1'
64
66
  version ''
65
67
  end
68
+ # Check installing a requested version.
66
69
  python_runtime 'pip2' do
70
+ pip_version '8.1.2'
67
71
  provider pip_provider
68
72
  options path: '/test_pip2'
69
73
  version ''
70
74
  end
71
- python_runtime 'pip2b' do
75
+ # Check installing the latest and reverting to an old version.
76
+ python_runtime 'pip3' do
77
+ provider pip_provider
78
+ options path: '/test_pip3'
79
+ version ''
80
+ end
81
+ python_runtime 'pip3b' do
72
82
  pip_version '7.1.2'
73
83
  provider pip_provider
74
- options path: '/test_pip2'
84
+ options path: '/test_pip3'
75
85
  version ''
76
86
  end
87
+ # Test pip9 specifically just to be safe.
88
+ python_runtime 'pip4' do
89
+ pip_version '9.0.3'
90
+ provider pip_provider
91
+ options path: '/test_pip4'
92
+ version ''
93
+ end
94
+ # Run a simple package install on each just to test things.
95
+ (1..4).each do |n|
96
+ python_package 'structlog' do
97
+ python "pip#{n}"
98
+ end
99
+ end
77
100
  end
78
101
  end
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2016-2017, Noah Kantrowitz
2
+ # Copyright 2018, Noah Kantrowitz
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -16,7 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 12.13.37'
20
- gem 'foodcritic', '< 8'
21
- gem 'fauxhai', '<= 3.9.0'
22
- gem 'chefspec', '< 6'
19
+ gem 'chef', '~> 12.20.3'
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2016-2017, Noah Kantrowitz
2
+ # Copyright 2018, Noah Kantrowitz
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -16,7 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 12.12.15'
20
- gem 'foodcritic', '< 8'
21
- gem 'fauxhai', '<= 3.9.0'
22
- gem 'chefspec', '< 6'
19
+ gem 'chef', '~> 12.21.31'
@@ -16,4 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 12.19'
19
+ gem 'chef', '~> 12.21'
@@ -16,4 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 13.0.113'
19
+ gem 'chef', '~> 13.0.118'
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2015-2017, Noah Kantrowitz
2
+ # Copyright 2017, Noah Kantrowitz
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -16,8 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 12.1.2'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
19
+ gem 'chef', '~> 13.1.31'
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2015-2017, Noah Kantrowitz
2
+ # Copyright 2017, Noah Kantrowitz
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -16,8 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 12.2.1'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
19
+ gem 'chef', '~> 13.2.20'
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2018, Noah Kantrowitz
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
+
19
+ gem 'chef', '~> 13.3.42'
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2018, Noah Kantrowitz
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
+
19
+ gem 'chef', '~> 13.4.24'
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2018, Noah Kantrowitz
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
+
19
+ gem 'chef', '~> 13.5.3'
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2018, Noah Kantrowitz
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
+
19
+ gem 'chef', '~> 13.6.4'
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2018, Noah Kantrowitz
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
+
19
+ gem 'chef', '~> 13.8.0'
@@ -16,4 +16,4 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', '~> 13.0'
19
+ gem 'chef', '~> 13.8'
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2018, Noah Kantrowitz
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
+
19
+ gem 'chef', '~> 14.0.202'
@@ -0,0 +1,19 @@
1
+ #
2
+ # Copyright 2018, Noah Kantrowitz
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
+
19
+ gem 'chef', '~> 14.0'
@@ -16,11 +16,14 @@
16
16
 
17
17
  eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
18
 
19
- gem 'chef', github: 'chef/chef'
20
- gem 'halite', github: 'poise/halite'
21
- gem 'ohai', github: 'chef/ohai'
22
- gem 'poise', github: 'poise/poise'
23
- gem 'poise-archive', github: 'poise/poise-archive'
24
- gem 'poise-boiler', github: 'poise/poise-boiler'
25
- gem 'poise-languages', github: 'poise/poise-languages'
26
- gem 'poise-profiler', github: 'poise/poise-profiler'
19
+ gem 'chef', git: 'https://github.com/chef/chef.git'
20
+ gem 'chefspec', git: 'https://github.com/sethvargo/chefspec.git'
21
+ gem 'fauxhai', git: 'https://github.com/customink/fauxhai.git'
22
+ gem 'foodcritic', git: 'https://github.com/foodcritic/foodcritic.git'
23
+ gem 'halite', git: 'https://github.com/poise/halite.git'
24
+ gem 'ohai', git: 'https://github.com/chef/ohai.git'
25
+ gem 'poise', git: 'https://github.com/poise/poise.git'
26
+ gem 'poise-archive', git: 'https://github.com/poise/poise-archive.git'
27
+ gem 'poise-boiler', git: 'https://github.com/poise/poise-boiler.git'
28
+ gem 'poise-languages', git: 'https://github.com/poise/poise-languages.git'
29
+ gem 'poise-profiler', git: 'https://github.com/poise/poise-profiler.git'
@@ -128,13 +128,41 @@ describe 'pip reversion test', unless: File.exist?('/no_pip') do
128
128
  '/bin/pypy'
129
129
  end
130
130
 
131
+ # Confirm pip verisons.
131
132
  describe command("/test_pip1#{path_suffix} -m pip --version") do
132
133
  its(:exit_status) { is_expected.to eq 0 }
133
- its(:stdout) { is_expected.to include '7.1.2' }
134
+ its(:stdout) { is_expected.to include ' 10.' }
134
135
  end
135
136
 
136
137
  describe command("/test_pip2#{path_suffix} -m pip --version") do
138
+ its(:exit_status) { is_expected.to eq 0 }
139
+ its(:stdout) { is_expected.to include '8.1.2' }
140
+ end
141
+
142
+ describe command("/test_pip3#{path_suffix} -m pip --version") do
137
143
  its(:exit_status) { is_expected.to eq 0 }
138
144
  its(:stdout) { is_expected.to include '7.1.2' }
139
145
  end
146
+
147
+ describe command("/test_pip4#{path_suffix} -m pip --version") do
148
+ its(:exit_status) { is_expected.to eq 0 }
149
+ its(:stdout) { is_expected.to include '9.0.3' }
150
+ end
151
+
152
+ # Check that structlog installed.
153
+ describe command("/test_pip1#{path_suffix} -c 'import structlog'") do
154
+ its(:exit_status) { is_expected.to eq 0 }
155
+ end
156
+
157
+ describe command("/test_pip2#{path_suffix} -c 'import structlog'") do
158
+ its(:exit_status) { is_expected.to eq 0 }
159
+ end
160
+
161
+ describe command("/test_pip3#{path_suffix} -c 'import structlog'") do
162
+ its(:exit_status) { is_expected.to eq 0 }
163
+ end
164
+
165
+ describe command("/test_pip4#{path_suffix} -c 'import structlog'") do
166
+ its(:exit_status) { is_expected.to eq 0 }
167
+ end
140
168
  end
@@ -18,7 +18,7 @@ require 'spec_helper'
18
18
 
19
19
  describe PoisePython::PythonProviders::Scl do
20
20
  let(:python_version) { '' }
21
- let(:chefspec_options) { {platform: 'centos', version: '7.0'} }
21
+ let(:chefspec_options) { {platform: 'centos', version: '7.4.1708'} }
22
22
  let(:default_attributes) { {poise_python_version: python_version} }
23
23
  let(:python_runtime) { chef_run.python_runtime('test') }
24
24
  step_into(:python_runtime)
@@ -60,7 +60,7 @@ describe PoisePython::PythonProviders::Scl do
60
60
  end # /context with version "3.3"
61
61
 
62
62
  context 'with version "" on CentOS 6' do
63
- let(:chefspec_options) { {platform: 'centos', version: '6.0'} }
63
+ let(:chefspec_options) { {platform: 'centos', version: '6.9'} }
64
64
  let(:python_version) { '' }
65
65
  it_behaves_like 'scl provider', 'rh-python34'
66
66
  end # /context with version "" on CentOS 6
@@ -65,13 +65,13 @@ describe PoisePython::PythonProviders::System do
65
65
  it_behaves_like 'system provider', %w{python2.3 python23 python}, 'python2.3'
66
66
  end # /context with version 2.3
67
67
 
68
- context 'on Debian 8.1' do
69
- before { chefspec_options.update(platform: 'debian', version: '8.1') }
68
+ context 'on Debian 8' do
69
+ before { chefspec_options.update(platform: 'debian', version: '8.9') }
70
70
  it_behaves_like 'system provider', 'python3.4'
71
- end # /context on Debian 8.1
71
+ end # /context on Debian 8
72
72
 
73
73
  context 'on CentOS 7' do
74
- before { chefspec_options.update(platform: 'centos', version: '7.0') }
74
+ before { chefspec_options.update(platform: 'centos', version: '7.4.1708') }
75
75
  recipe do
76
76
  python_runtime 'test' do
77
77
  provider :system
@@ -80,7 +80,7 @@ describe PoisePython::PythonProviders::System do
80
80
  end
81
81
  end
82
82
  it_behaves_like 'system provider', 'python'
83
- end # /context on Debian 8.1
83
+ end # /context on CentOS 7
84
84
 
85
85
  context 'action :uninstall' do
86
86
  recipe do
@@ -50,7 +50,7 @@ describe PoisePython::Resources::PythonPackage do
50
50
  end # /describe PoisePython::Resources::PythonPackage::Resource
51
51
 
52
52
  describe PoisePython::Resources::PythonPackage::Provider do
53
- let(:test_resource) { nil }
53
+ let(:test_resource) { PoisePython::Resources::PythonPackage::Resource.new('package', chef_run.run_context) }
54
54
  let(:test_provider) { described_class.new(test_resource, chef_run.run_context) }
55
55
  def stub_cmd(cmd, **options)
56
56
  options = options.dup
@@ -72,7 +72,7 @@ describe PoisePython::Resources::PythonPackage do
72
72
  context 'with package_name foo' do
73
73
  let(:package_name) { 'foo' }
74
74
  before do
75
- stub_cmd(%w{-m pip.__main__ list}, stdout: '')
75
+ stub_cmd(%w{-m pip.__main__ list}, environment: {'PIP_FORMAT' => 'json'}, stdout: '')
76
76
  stub_cmd(%w{- foo}, input: kind_of(String), stdout: '{"foo":"1.0.0"}')
77
77
  end
78
78
 
@@ -83,7 +83,7 @@ describe PoisePython::Resources::PythonPackage do
83
83
  context 'with package_name ["foo", "bar"]' do
84
84
  let(:package_name) { %w{foo bar} }
85
85
  before do
86
- stub_cmd(%w{-m pip.__main__ list}, stdout: '')
86
+ stub_cmd(%w{-m pip.__main__ list}, environment: {'PIP_FORMAT' => 'json'}, stdout: '')
87
87
  stub_cmd(%w{- foo bar}, input: kind_of(String), stdout: '{"foo":"1.0.0","bar":"2.0.0"}')
88
88
  end
89
89
 
@@ -94,7 +94,7 @@ describe PoisePython::Resources::PythonPackage do
94
94
  context 'with a package with extras' do
95
95
  let(:package_name) { 'foo[bar]' }
96
96
  before do
97
- stub_cmd(%w{-m pip.__main__ list}, stdout: '')
97
+ stub_cmd(%w{-m pip.__main__ list}, environment: {'PIP_FORMAT' => 'json'}, stdout: '')
98
98
  stub_cmd(%w{- foo}, input: kind_of(String), stdout: '{"foo":"1.0.0"}')
99
99
  end
100
100
 
@@ -105,7 +105,7 @@ describe PoisePython::Resources::PythonPackage do
105
105
  context 'with a package with underscores' do
106
106
  let(:package_name) { 'cx_foo' }
107
107
  before do
108
- stub_cmd(%w{-m pip.__main__ list}, stdout: '')
108
+ stub_cmd(%w{-m pip.__main__ list}, environment: {'PIP_FORMAT' => 'json'}, stdout: '')
109
109
  stub_cmd(%w{- cx-foo}, input: kind_of(String), stdout: '{"cx-foo":"1.0.0"}')
110
110
  end
111
111
 
@@ -117,7 +117,7 @@ describe PoisePython::Resources::PythonPackage do
117
117
  let(:package_name) { 'foo' }
118
118
  before do
119
119
  test_resource.options('--index-url=http://example')
120
- stub_cmd("-m pip.__main__ list --index-url=http://example ", stdout: '', array_13: true)
120
+ stub_cmd("-m pip.__main__ list --index-url=http://example ", environment: {'PIP_FORMAT' => 'json'}, stdout: '', array_13: true)
121
121
  stub_cmd("- --index-url=http://example foo", input: kind_of(String), stdout: '{"foo":"1.0.0"}', array_13: true)
122
122
  end
123
123
 
@@ -129,7 +129,7 @@ describe PoisePython::Resources::PythonPackage do
129
129
  let(:package_name) { 'foo' }
130
130
  before do
131
131
  test_resource.list_options('--index-url=http://example')
132
- stub_cmd("-m pip.__main__ list --index-url=http://example ", stdout: '')
132
+ stub_cmd("-m pip.__main__ list --index-url=http://example ", environment: {'PIP_FORMAT' => 'json'}, stdout: '')
133
133
  stub_cmd("- --index-url=http://example foo", input: kind_of(String), stdout: '{"foo":"1.0.0"}')
134
134
  end
135
135
 
@@ -141,7 +141,7 @@ describe PoisePython::Resources::PythonPackage do
141
141
  let(:package_name) { 'foo' }
142
142
  before do
143
143
  test_resource.list_options(%w{--index-url=http://example})
144
- stub_cmd(%w{-m pip.__main__ list --index-url=http://example}, stdout: '')
144
+ stub_cmd(%w{-m pip.__main__ list --index-url=http://example}, environment: {'PIP_FORMAT' => 'json'}, stdout: '')
145
145
  stub_cmd(%w{- --index-url=http://example foo}, input: kind_of(String), stdout: '{"foo":"1.0.0"}')
146
146
  end
147
147
 
@@ -302,6 +302,13 @@ EOH
302
302
  it { is_expected.to eq({'eventlet' => '0.12.1', 'fabric' => '1.9.1', 'fabric-rundeck' => '1.2', 'flake8' => '2.1.0.dev0', 'cx-freeze' => '4.3.4'}) }
303
303
  end # /context with standard content
304
304
 
305
+ context 'with JSON content' do
306
+ let(:text) { <<-EOH.strip }
307
+ [{"name":"eventlet","version":"0.12.1"}, {"name":"Fabric","version":"1.9.1"}, {"name":"fabric-rundeck","version":"1.2"}, {"name":"flake8","version":"2.1.0.dev0"}, {"name":"cx-Freeze","version":"4.3.4"}]
308
+ EOH
309
+ it { is_expected.to eq({'eventlet' => '0.12.1', 'fabric' => '1.9.1', 'fabric-rundeck' => '1.2', 'flake8' => '2.1.0.dev0', 'cx-freeze' => '4.3.4'}) }
310
+ end # /context with JSON content
311
+
305
312
  context 'with malformed content' do
306
313
  let(:text) { <<-EOH }
307
314
  eventlet (0.12.1)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poise-python
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noah Kantrowitz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-12 00:00:00.000000000 Z
11
+ date: 2018-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '12.1'
19
+ version: '12.14'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '14'
22
+ version: '15'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '12.1'
29
+ version: '12.14'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '14'
32
+ version: '15'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: halite
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -97,6 +97,7 @@ files:
97
97
  - ".kitchen.yml"
98
98
  - ".travis.yml"
99
99
  - ".yardopts"
100
+ - ".yo-rc.json"
100
101
  - CHANGELOG.md
101
102
  - Gemfile
102
103
  - LICENSE
@@ -132,28 +133,26 @@ files:
132
133
  - test/cookbook/recipes/default.rb
133
134
  - test/docker/docker.ca
134
135
  - test/docker/docker.pem
135
- - test/gemfiles/chef-12.1.gemfile
136
- - test/gemfiles/chef-12.10.gemfile
137
- - test/gemfiles/chef-12.11.gemfile
138
- - test/gemfiles/chef-12.12.gemfile
139
- - test/gemfiles/chef-12.13.gemfile
140
136
  - test/gemfiles/chef-12.14.gemfile
141
137
  - test/gemfiles/chef-12.15.gemfile
142
138
  - test/gemfiles/chef-12.16.gemfile
143
139
  - test/gemfiles/chef-12.17.gemfile
144
140
  - test/gemfiles/chef-12.18.gemfile
145
141
  - test/gemfiles/chef-12.19.gemfile
146
- - test/gemfiles/chef-12.2.gemfile
147
- - test/gemfiles/chef-12.3.gemfile
148
- - test/gemfiles/chef-12.4.gemfile
149
- - test/gemfiles/chef-12.5.gemfile
150
- - test/gemfiles/chef-12.6.gemfile
151
- - test/gemfiles/chef-12.7.gemfile
152
- - test/gemfiles/chef-12.8.gemfile
153
- - test/gemfiles/chef-12.9.gemfile
142
+ - test/gemfiles/chef-12.20.gemfile
143
+ - test/gemfiles/chef-12.21.gemfile
154
144
  - test/gemfiles/chef-12.gemfile
155
145
  - test/gemfiles/chef-13.0.gemfile
146
+ - test/gemfiles/chef-13.1.gemfile
147
+ - test/gemfiles/chef-13.2.gemfile
148
+ - test/gemfiles/chef-13.3.gemfile
149
+ - test/gemfiles/chef-13.4.gemfile
150
+ - test/gemfiles/chef-13.5.gemfile
151
+ - test/gemfiles/chef-13.6.gemfile
152
+ - test/gemfiles/chef-13.8.gemfile
156
153
  - test/gemfiles/chef-13.gemfile
154
+ - test/gemfiles/chef-14.0.gemfile
155
+ - test/gemfiles/chef-14.gemfile
157
156
  - test/gemfiles/master.gemfile
158
157
  - test/integration/default/serverspec/default_spec.rb
159
158
  - test/spec/python_command_mixin_spec.rb
@@ -172,8 +171,9 @@ files:
172
171
  - test/spec/utils_spec.rb
173
172
  homepage: https://github.com/poise/poise-python
174
173
  licenses:
175
- - Apache 2.0
176
- metadata: {}
174
+ - Apache-2.0
175
+ metadata:
176
+ platforms: ubuntu debian redhat centos fedora amazon windows
177
177
  post_install_message:
178
178
  rdoc_options: []
179
179
  require_paths:
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  version: '0'
191
191
  requirements: []
192
192
  rubyforge_project:
193
- rubygems_version: 2.6.11
193
+ rubygems_version: 2.7.6
194
194
  signing_key:
195
195
  specification_version: 4
196
196
  summary: A Chef cookbook for managing Python installations.
@@ -199,28 +199,26 @@ test_files:
199
199
  - test/cookbook/recipes/default.rb
200
200
  - test/docker/docker.ca
201
201
  - test/docker/docker.pem
202
- - test/gemfiles/chef-12.1.gemfile
203
- - test/gemfiles/chef-12.10.gemfile
204
- - test/gemfiles/chef-12.11.gemfile
205
- - test/gemfiles/chef-12.12.gemfile
206
- - test/gemfiles/chef-12.13.gemfile
207
202
  - test/gemfiles/chef-12.14.gemfile
208
203
  - test/gemfiles/chef-12.15.gemfile
209
204
  - test/gemfiles/chef-12.16.gemfile
210
205
  - test/gemfiles/chef-12.17.gemfile
211
206
  - test/gemfiles/chef-12.18.gemfile
212
207
  - test/gemfiles/chef-12.19.gemfile
213
- - test/gemfiles/chef-12.2.gemfile
214
- - test/gemfiles/chef-12.3.gemfile
215
- - test/gemfiles/chef-12.4.gemfile
216
- - test/gemfiles/chef-12.5.gemfile
217
- - test/gemfiles/chef-12.6.gemfile
218
- - test/gemfiles/chef-12.7.gemfile
219
- - test/gemfiles/chef-12.8.gemfile
220
- - test/gemfiles/chef-12.9.gemfile
208
+ - test/gemfiles/chef-12.20.gemfile
209
+ - test/gemfiles/chef-12.21.gemfile
221
210
  - test/gemfiles/chef-12.gemfile
222
211
  - test/gemfiles/chef-13.0.gemfile
212
+ - test/gemfiles/chef-13.1.gemfile
213
+ - test/gemfiles/chef-13.2.gemfile
214
+ - test/gemfiles/chef-13.3.gemfile
215
+ - test/gemfiles/chef-13.4.gemfile
216
+ - test/gemfiles/chef-13.5.gemfile
217
+ - test/gemfiles/chef-13.6.gemfile
218
+ - test/gemfiles/chef-13.8.gemfile
223
219
  - test/gemfiles/chef-13.gemfile
220
+ - test/gemfiles/chef-14.0.gemfile
221
+ - test/gemfiles/chef-14.gemfile
224
222
  - test/gemfiles/master.gemfile
225
223
  - test/integration/default/serverspec/default_spec.rb
226
224
  - test/spec/python_command_mixin_spec.rb
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2016-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.10.24'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2016-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.11.18'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2015-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.3.0'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
@@ -1,24 +0,0 @@
1
- #
2
- # Copyright 2015-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.4.3'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
24
- gem 'gh', '0.14.0'
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2015-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.5.1'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2015-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.6.0'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2015-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.7.2'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2015-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.8.1'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'
@@ -1,23 +0,0 @@
1
- #
2
- # Copyright 2016-2017, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
18
-
19
- gem 'chef', '~> 12.9.41'
20
- gem 'rack', '< 2'
21
- gem 'foodcritic', '< 8'
22
- gem 'fauxhai', '<= 3.9.0'
23
- gem 'chefspec', '< 6'