berkshelf 7.2.2 → 8.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3328d9ead777bfb150d7588648ca5376fa46fa5fafa8ded0afdb9cc710043b3
4
- data.tar.gz: 94203ac8481a5a5155987e5f060d6fd1c78cc9f3073dd84efcb597d1a21ff5c6
3
+ metadata.gz: eca450739cdb53861e1a527e0147f702b71c898bac6d3ab317fa53f8b7150dc2
4
+ data.tar.gz: 625a9e32681e15e4d553c9d56653cb16396255c347fcc45f1e9a51e61fc41324
5
5
  SHA512:
6
- metadata.gz: 337c5f8eb9d149f27e7fc40f6e1228f7fdbc2606a8c352dbe8c942ee5f6ab081e5db039fb9b46e41a9dbaff017ddf7d004d02c7d8d272d3042cf892e5e68396e
7
- data.tar.gz: b9d8896f85f1c98924c3472ad97648071bc8301854a0ea49fe7dde2472faafe54f035b27140928462de7e099aa95983cda21d52d928ad93698ccf7e1404265e2
6
+ metadata.gz: 2079eaf58a614ed63b85335a02fe19bd8ae8083856341905a95c83ba4eca1185744e5164c683d8610f0b2bbb332bd5636a1814daaf7c37a149d76b979be7ccf7
7
+ data.tar.gz: 7fd481876fab292339aac18016d5727bbe197186c3e92e6093dfebba962fc7540b0141b55fce6235263db945fc7423b0e138094d3fbe85a68d041a713268977d
data/Gemfile CHANGED
@@ -7,7 +7,6 @@ group :build do
7
7
  end
8
8
 
9
9
  group :development do
10
- gem "chef-bin" # for the proxy tests
11
10
  gem "aruba", "~> 0.10" # Stay below 1 until aruba/in_process monkeypatching stops
12
11
  gem "cucumber", "< 4.0" # until we identify what is generating the ~@no_run tag in CI
13
12
  gem "cucumber-expressions", "= 5.0.13"
data/berkshelf.gemspec CHANGED
@@ -25,8 +25,13 @@ Gem::Specification.new do |s|
25
25
  s.name = "berkshelf"
26
26
  s.require_paths = ["lib"]
27
27
  s.version = Berkshelf::VERSION
28
- s.required_ruby_version = ">= 2.4.0"
28
+ s.required_ruby_version = ">= 2.7.0"
29
29
  s.required_rubygems_version = ">= 2.0.0"
30
+ s.metadata = {
31
+ "bug_tracker_uri" => "https://github.com/chef/berkshelf/issues",
32
+ "source_code_uri" => "https://github.com/chef/berkshelf",
33
+ "changelog_uri" => "https://github.com/chef/berkshelf/blob/main/CHANGELOG.md",
34
+ }
30
35
 
31
36
  s.add_dependency "mixlib-shellout", ">= 2.0", "< 4.0"
32
37
  s.add_dependency "cleanroom", "~> 1.0"
@@ -118,7 +118,7 @@ module Berkshelf
118
118
  # cookbook 'artifact', path: '/Users/reset/code/artifact'
119
119
  #
120
120
  # @example a cookbook dependency that will be retrieved from a Git server
121
- # cookbook 'artifact', git: 'git://github.com/RiotGames/artifact-cookbook.git'
121
+ # cookbook 'artifact', git: 'https://github.com/chef/artifact-cookbook.git'
122
122
  #
123
123
  # @overload cookbook(name, version_constraint, options = {})
124
124
  # @param [#to_s] name
@@ -156,7 +156,7 @@ module Berkshelf
156
156
  options[:group] += @active_group
157
157
  end
158
158
 
159
- add_dependency(name, constraint, options)
159
+ add_dependency(name, constraint, **options)
160
160
  end
161
161
  expose :cookbook
162
162
 
@@ -9,7 +9,7 @@ module Berkshelf
9
9
  # is returned.
10
10
  #
11
11
  # @example Create a git location
12
- # Location.init(dependency, git: 'git://github.com/berkshelf/berkshelf.git')
12
+ # Location.init(dependency, git: 'https://github.com/berkshelf/berkshelf.git')
13
13
  #
14
14
  # @example Create a GitHub location
15
15
  # Location.init(dependency, github: 'berkshelf/berkshelf')
@@ -9,7 +9,7 @@ module Berkshelf
9
9
  when :https
10
10
  options[:git] = "https://#{HOST}/#{options.delete(:github)}.git"
11
11
  when :git
12
- options[:git] = "git://#{HOST}/#{options.delete(:github)}.git"
12
+ options[:git] = "https://#{HOST}/#{options.delete(:github)}.git"
13
13
  else
14
14
  # if some bizarre value is provided, treat it as :https
15
15
  options[:git] = "https://#{HOST}/#{options.delete(:github)}.git"
@@ -1,4 +1,5 @@
1
1
  require "archive/tar/minitar"
2
+ require "find" unless defined?(Find)
2
3
  require "zlib" unless defined?(Zlib)
3
4
 
4
5
  module Berkshelf
@@ -40,8 +41,18 @@ module Berkshelf
40
41
  # @return [String]
41
42
  # path to the generated archive
42
43
  def run(source)
43
- tgz = Zlib::GzipWriter.new(File.open(out_file, "wb"))
44
- Archive::Tar::Minitar.pack(Dir.glob("#{source}/*"), tgz)
44
+ begin
45
+ dest = Zlib::GzipWriter.open(out_file)
46
+ tar = RelativeTarWriter.new(dest, source)
47
+ Find.find(source) do |entry|
48
+ next if source == entry
49
+
50
+ Archive::Tar::Minitar.pack_file(entry, tar)
51
+ end
52
+ ensure
53
+ tar.close
54
+ dest.close
55
+ end
45
56
 
46
57
  out_file
47
58
  rescue SystemCallError => ex
@@ -67,5 +78,30 @@ module Berkshelf
67
78
 
68
79
  # @return [String]
69
80
  attr_reader :filename
81
+
82
+ # A private decorator for Archive::Tar::Minitar::Writer that
83
+ # turns absolute paths into relative ones.
84
+ class RelativeTarWriter < SimpleDelegator # :nodoc:
85
+ def initialize(io, base_path)
86
+ @base_path = Pathname.new(base_path)
87
+ super(Archive::Tar::Minitar::Writer.new(io))
88
+ end
89
+
90
+ %w{add_file add_file_simple mkdir}.each do |method|
91
+ class_eval <<~RUBY
92
+ def #{method}(name, *opts, &block)
93
+ super(relative_path(name), *opts, &block)
94
+ end
95
+ RUBY
96
+ end
97
+
98
+ private
99
+
100
+ attr_reader :base_path
101
+
102
+ def relative_path(path)
103
+ Pathname.new(path).relative_path_from(base_path).to_s
104
+ end
105
+ end
70
106
  end
71
107
  end
@@ -1,5 +1,5 @@
1
1
  class Thor
2
- module CoreExt #:nodoc:
2
+ module CoreExt # :nodoc:
3
3
  class HashWithIndifferentAccess < ::Hash
4
4
  def has_key?(key)
5
5
  super(convert_key(key))
@@ -1,3 +1,3 @@
1
1
  module Berkshelf
2
- VERSION = "7.2.2".freeze
2
+ VERSION = "8.0.2".freeze
3
3
  end
data/spec/config/knife.rb CHANGED
@@ -4,7 +4,7 @@ node_name "berkshelf"
4
4
  client_key File.expand_path("spec/config/berkshelf.pem")
5
5
  validation_client_name "validator"
6
6
  validation_key File.expand_path("spec/config/validator.pem")
7
- chef_server_url "http://localhost:26310"
7
+ chef_server_url "http://127.0.0.1:26310"
8
8
  cache_type "BasicFile"
9
9
  cache_options( path: "#{ENV["HOME"]}/.chef/checksums" )
10
10
  cookbook_path []
data/spec/support/git.rb CHANGED
@@ -5,7 +5,7 @@ module Berkshelf
5
5
  include Berkshelf::RSpec::PathHelpers
6
6
 
7
7
  def git_origin_for(repo, options = {})
8
- "file://#{generate_fake_git_remote("git@github.com/RiotGames/#{repo}.git", options)}/.git"
8
+ "file://#{generate_fake_git_remote("git@github.com/chef/#{repo}.git", options)}/.git"
9
9
  end
10
10
 
11
11
  def generate_fake_git_remote(uri, options = {})
@@ -35,7 +35,7 @@ describe Berkshelf::Dependency do
35
35
  end
36
36
 
37
37
  context "given a location key :git" do
38
- let(:url) { "git://url_to_git" }
38
+ let(:url) { "https://url_to_git" }
39
39
  let(:source) { described_class.new(berksfile, cookbook_name, git: url) }
40
40
 
41
41
  it "initializes a GitLocation for location" do
@@ -11,7 +11,7 @@ module Berkshelf
11
11
  end
12
12
 
13
13
  it "finds a :git location by key" do
14
- instance = described_class.init(dependency, git: "git://foo.com/meats/bacon.git")
14
+ instance = described_class.init(dependency, git: "https://foo.com/meats/bacon.git")
15
15
  expect(instance).to be_a(GitLocation)
16
16
  end
17
17
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.2
4
+ version: 8.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Winsor
@@ -9,10 +9,10 @@ authors:
9
9
  - Michael Ivey
10
10
  - Justin Campbell
11
11
  - Seth Vargo
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-06-16 00:00:00.000000000 Z
15
+ date: 2022-06-02 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: mixlib-shellout
@@ -359,8 +359,11 @@ files:
359
359
  homepage: https://docs.chef.io/berkshelf.html
360
360
  licenses:
361
361
  - Apache-2.0
362
- metadata: {}
363
- post_install_message:
362
+ metadata:
363
+ bug_tracker_uri: https://github.com/chef/berkshelf/issues
364
+ source_code_uri: https://github.com/chef/berkshelf
365
+ changelog_uri: https://github.com/chef/berkshelf/blob/main/CHANGELOG.md
366
+ post_install_message:
364
367
  rdoc_options: []
365
368
  require_paths:
366
369
  - lib
@@ -368,15 +371,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
368
371
  requirements:
369
372
  - - ">="
370
373
  - !ruby/object:Gem::Version
371
- version: 2.4.0
374
+ version: 2.7.0
372
375
  required_rubygems_version: !ruby/object:Gem::Requirement
373
376
  requirements:
374
377
  - - ">="
375
378
  - !ruby/object:Gem::Version
376
379
  version: 2.0.0
377
380
  requirements: []
378
- rubygems_version: 3.2.15
379
- signing_key:
381
+ rubygems_version: 3.2.32
382
+ signing_key:
380
383
  specification_version: 4
381
384
  summary: Manages a Chef cookbook's dependencies
382
385
  test_files: []