poise-python 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
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'