diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 849af14..07731cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,6 @@ jobs: - uses: ruby/setup-ruby@v1 with: bundler-cache: true - ruby-version: 3.1 + ruby-version: 3.4 - run: bundle exec rake spec diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..1809198 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.4.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 45f3a3e..8b552ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Changed +- Updated minimum Ruby version requirement from 2.3.1 to 3.4.0 +- Updated `berkshelf` from ~> 7.0 to ~> 8.1 +- Updated `chef` from ~> 13.6 to ~> 18.8 + +### Added +- Added `.ruby-version` file to specify Ruby 3.4.0 + ## [0.8.1] ### Fixed diff --git a/Gemfile.lock b/Gemfile.lock index 7f02b35..af9c6b8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,239 +7,442 @@ PATH aws-sdk-core aws-sdk-opsworks (~> 1) aws-sdk-s3 (~> 1) - berkshelf (~> 7.0) - chef (~> 13.6) + berkshelf (~> 8.1) + chef (~> 18.8) inifile (~> 3.0) nokogiri - rubyzip (~> 1.2) + rubyzip (~> 2.0) thor (~> 1.0) GEM remote: https://rubygems.org/ specs: + activesupport (7.1.5.2) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + mutex_m + securerandom (>= 0.3) + tzinfo (~> 2.0) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) archive-tar-minitar (0.5.2) - aws-eventstream (1.3.0) - aws-partitions (1.977.0) - aws-sdk-configservice (1.118.0) - aws-sdk-core (~> 3, >= 3.207.0) + ast (2.4.3) + aws-eventstream (1.4.0) + aws-partitions (1.1182.0) + aws-sdk-configservice (1.140.0) + aws-sdk-core (~> 3, >= 3.234.0) aws-sigv4 (~> 1.5) - aws-sdk-core (3.207.0) + aws-sdk-core (3.237.0) aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.651.0) + aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) + base64 + bigdecimal jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.92.0) - aws-sdk-core (~> 3, >= 3.207.0) + logger + aws-sdk-kms (1.117.0) + aws-sdk-core (~> 3, >= 3.234.0) aws-sigv4 (~> 1.5) - aws-sdk-opsworks (1.65.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-opsworks (1.79.0) + aws-sdk-core (~> 3, >= 3.228.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.164.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-s3 (1.203.1) + aws-sdk-core (~> 3, >= 3.234.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) - aws-sigv4 (1.10.0) + aws-sdk-secretsmanager (1.122.0) + aws-sdk-core (~> 3, >= 3.234.0) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.12.1) aws-eventstream (~> 1, >= 1.0.2) - base64 (0.2.0) - berkshelf (7.0.10) - chef (>= 13.6.52) + base64 (0.3.0) + benchmark (0.5.0) + berkshelf (8.1.6) + chef (>= 18.0.0) + chef-cleanroom (~> 1.0) chef-config - cleanroom (~> 1.0) concurrent-ruby (~> 1.0) - minitar (>= 0.6) - mixlib-archive (>= 0.4, < 2.0) + ffi (>= 1.15.5, <= 1.16.3) + minitar (~> 1.0) + mixlib-archive (>= 1.1.4, < 2.0) mixlib-config (>= 2.2.5) mixlib-shellout (>= 2.0, < 4.0) - octokit (~> 4.0) + octokit (>= 4.0, < 6.0) retryable (>= 2.0, < 4.0) solve (~> 4.0) - thor (>= 0.20) + syslog (~> 0.3) + thor (~> 1.4) + bigdecimal (3.3.1) builder (3.3.0) - chef (13.10.0) + chef (18.8.54) + activesupport (>= 4.2.7.1, <= 7.1.5.2) addressable - bundler (>= 1.10) - chef-config (= 13.10.0) - chef-zero (~> 13.0) - diff-lcs (~> 1.2, >= 1.2.4) + aws-sdk-s3 (~> 1.91) + aws-sdk-secretsmanager (~> 1.46) + chef-config (= 18.8.54) + chef-utils (= 18.8.54) + chef-vault + chef-zero (>= 15.0.21) + corefoundation (~> 0.3.4) + diff-lcs (>= 1.2.4, < 1.6.0, != 1.4.0) erubis (~> 2.7) + ffi (>= 1.15.5, <= 1.16.3) + ffi-libarchive (~> 1.0, >= 1.0.3) ffi-yajl (~> 2.2) - highline (~> 1.6, >= 1.6.9) iniparse (~> 1.4) - iso8601 (~> 0.9.1) - mixlib-archive (~> 0.4) - mixlib-authentication (~> 1.4) - mixlib-cli (~> 1.7) - mixlib-log (~> 1.3) - mixlib-shellout (~> 2.0) - net-sftp (~> 2.1, >= 2.1.2) - net-ssh (>= 2.9, < 5.0) - net-ssh-multi (~> 1.2, >= 1.2.1) - ohai (~> 13.0) + inspec-core (>= 5, < 6) + license-acceptance (>= 1.0.5, < 3) + mixlib-archive (>= 0.4, < 2.0) + mixlib-authentication (>= 2.1, < 4) + mixlib-cli (>= 2.1.1, < 3.0) + mixlib-log (>= 2.0.3, < 3.2) + mixlib-shellout (>= 3.1.1, < 4.0) + net-ftp + net-sftp (>= 2.1.2, < 5.0) + ohai (~> 18.0) plist (~> 3.2) - proxifier (~> 1.0) - rspec-core (~> 3.5) - rspec-expectations (~> 3.5) - rspec-mocks (~> 3.5) - rspec_junit_formatter (~> 0.2.0) - serverspec (~> 2.7) - specinfra (~> 2.10) + proxifier2 (~> 1.1) syslog-logger (~> 1.6) - uuidtools (~> 2.1.5) - chef-config (13.10.0) + train-core (~> 3.13, >= 3.13.4) + train-rest (>= 0.4.1) + train-winrm (~> 0.2.17) + unf_ext (~> 0.0.8.2) + uri (~> 1.0.3) + uuidtools (>= 2.1.5, < 3.0) + vault (~> 0.18.2) + chef-cleanroom (1.0.5) + chef-config (18.8.54) addressable + chef-utils (= 18.8.54) fuzzyurl - mixlib-config (>= 2.2.12, < 3.0) - mixlib-shellout (~> 2.0) + mixlib-config (>= 2.2.12, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) tomlrb (~> 1.2) - chef-zero (13.1.0) - ffi-yajl (~> 2.2) - hashie (>= 2.0, < 4.0) - mixlib-log (~> 1.3) - rack (~> 2.0) + chef-gyoku (1.4.5) + builder (>= 2.1.2) + rexml (~> 3.4) + chef-telemetry (1.1.1) + chef-config + concurrent-ruby (~> 1.0) + chef-utils (18.8.54) + concurrent-ruby + chef-vault (4.2.5) + syslog (~> 0.3) + chef-winrm (2.3.12) + builder (>= 2.1.2) + chef-gyoku (~> 1.4.0, <= 1.4.5) + erubi (~> 1.8) + ffi (>= 1.15.5, < 1.17.0) + gssapi (~> 1.2) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (= 2.7.0) + rexml (~> 3.3) + rubyntlm (~> 0.6.0, >= 0.6.3) + chef-winrm-elevated (1.2.5) + chef-winrm (>= 2.3.11) + chef-winrm-fs (>= 1.3.7) + erubi (~> 1.8) + chef-winrm-fs (1.3.7) + chef-winrm (>= 2.3.11) + erubi (>= 1.7) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 2.0) + chef-zero (15.0.26) + ffi-yajl (>= 2.2, < 4.0) + hashie (>= 2.0, < 6.0) + mixlib-log (>= 2.0, < 4.0) + rack (~> 3.1, >= 3.1.16) + rackup (~> 2.2, >= 2.2.1) + unf_ext (~> 0.0.8) uuidtools (~> 2.1) - cleanroom (1.0.0) - concurrent-ruby (1.3.4) + webrick + coderay (1.1.3) + concurrent-ruby (1.3.5) + connection_pool (2.5.4) + cookstyle (8.5.2) + rubocop (= 1.81.6) + corefoundation (0.3.13) + ffi (>= 1.15.0) + date (3.5.0) diff-lcs (1.5.1) + domain_name (0.6.20240107) + drb (2.2.3) + erubi (1.13.1) erubis (2.7.0) - faraday (2.12.0) - faraday-net_http (>= 2.0, < 3.4) + faraday (2.14.0) + faraday-net_http (>= 2.0, < 3.5) json logger - faraday-net_http (3.3.0) - net-http - ffi (1.17.0) - ffi (1.17.0-aarch64-linux-gnu) - ffi (1.17.0-aarch64-linux-musl) - ffi (1.17.0-arm-linux-gnu) - ffi (1.17.0-arm-linux-musl) - ffi (1.17.0-arm64-darwin) - ffi (1.17.0-x86-linux-gnu) - ffi (1.17.0-x86-linux-musl) - ffi (1.17.0-x86_64-darwin) - ffi (1.17.0-x86_64-linux-gnu) - ffi (1.17.0-x86_64-linux-musl) + faraday-follow_redirects (0.4.0) + faraday (>= 1, < 3) + faraday-net_http (3.4.2) + net-http (~> 0.5) + ffi (1.16.3) + ffi-libarchive (1.1.14) + ffi (~> 1.0) ffi-yajl (2.6.0) libyajl2 (>= 1.2) fuzzyurl (0.9.0) - hashie (3.6.0) - highline (1.7.10) + gssapi (1.3.1) + ffi (>= 1.0.1) + hashie (5.0.0) + http-accept (1.7.0) + http-cookie (1.1.0) + domain_name (~> 0.5) + httpclient (2.9.0) + mutex_m + i18n (1.14.7) + concurrent-ruby (~> 1.0) inifile (3.0.0) iniparse (1.5.0) + inspec-core (5.23.6) + addressable (~> 2.4) + chef-telemetry (~> 1.0, >= 1.0.8) + cookstyle + faraday (>= 1, < 3) + faraday-follow_redirects (~> 0.3) + hashie (>= 3.4, < 6.0) + license-acceptance (>= 0.2.13, < 3.0) + method_source (>= 0.8, < 2.0) + mixlib-log (~> 3.0, < 3.2) + multipart-post (~> 2.0) + parallel (~> 1.9) + parslet (>= 1.5, < 3.0) + pry (~> 0.13) + rspec (>= 3.9, <= 3.14) + rspec-its (>= 1.2, < 3.0) + rubyzip (>= 1.2.2, < 4.0) + semverse (~> 3.0) + sslshake (~> 1.2) + thor (>= 0.20, < 1.5.0) + tomlrb (>= 1.2, < 2.1) + train-core (~> 3.13, >= 3.13.4) + tty-prompt (~> 0.17) + tty-table (~> 0.10) ipaddress (0.8.3) - iso8601 (0.9.1) jmespath (1.6.2) - json (2.7.2) + json (2.16.0) + language_server-protocol (3.17.0.5) libyajl2 (2.1.0) - logger (1.6.1) - mini_portile2 (2.8.7) - minitar (1.0.2) - mixlib-archive (0.4.20) + license-acceptance (2.1.13) + pastel (~> 0.7) + tomlrb (>= 1.2, < 3.0) + tty-box (~> 0.6) + tty-prompt (~> 0.20) + lint_roller (1.1.0) + little-plugger (1.1.4) + logger (1.7.0) + logging (2.4.0) + little-plugger (~> 1.1) + multi_json (~> 1.14) + method_source (1.1.0) + mime-types (3.7.0) + logger + mime-types-data (~> 3.2025, >= 3.2025.0507) + mime-types-data (3.2025.0924) + mini_portile2 (2.8.9) + minitar (1.1.0) + minitest (5.26.1) + mixlib-archive (1.3.3) mixlib-log - mixlib-authentication (1.4.2) - mixlib-cli (1.7.0) - mixlib-config (2.2.18) + mixlib-authentication (3.0.10) + mixlib-cli (2.1.8) + mixlib-config (3.0.27) tomlrb - mixlib-log (1.7.1) - mixlib-shellout (2.4.4) + mixlib-log (3.1.2.1) + ffi (< 1.17.0) + mixlib-shellout (3.3.9) + chef-utils molinillo (0.8.0) - multi_json (1.15.0) - net-http (0.4.1) - uri - net-scp (4.0.0) + multi_json (1.17.0) + multipart-post (2.4.1) + mutex_m (0.3.0) + net-ftp (0.3.9) + net-protocol + time + net-http (0.8.0) + uri (>= 0.11.1) + net-protocol (0.2.2) + timeout + net-scp (4.1.0) net-ssh (>= 2.6.5, < 8.0.0) - net-sftp (2.1.2) - net-ssh (>= 2.6.5) - net-ssh (4.2.0) - net-ssh-gateway (2.0.0) - net-ssh (>= 4.0.0) - net-ssh-multi (1.2.1) - net-ssh (>= 2.6.5) - net-ssh-gateway (>= 1.2.0) - net-telnet (0.2.0) - nokogiri (1.16.7) + net-sftp (4.0.0) + net-ssh (>= 5.0.0, < 8.0.0) + net-ssh (7.3.0) + netrc (0.11.0) + nokogiri (1.18.10) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.16.7-aarch64-linux) + nokogiri (1.18.10-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.16.7-arm-linux) + nokogiri (1.18.10-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.16.7-arm64-darwin) + nokogiri (1.18.10-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.16.7-x86-linux) + nokogiri (1.18.10-arm-linux-musl) racc (~> 1.4) - nokogiri (1.16.7-x86_64-darwin) + nokogiri (1.18.10-arm64-darwin) racc (~> 1.4) - nokogiri (1.16.7-x86_64-linux) + nokogiri (1.18.10-x86_64-darwin) racc (~> 1.4) - octokit (4.25.1) + nokogiri (1.18.10-x86_64-linux-gnu) + racc (~> 1.4) + nokogiri (1.18.10-x86_64-linux-musl) + racc (~> 1.4) + nori (2.7.0) + bigdecimal + octokit (5.6.1) faraday (>= 1, < 3) sawyer (~> 0.9) - ohai (13.12.6) - chef-config (>= 12.5.0.alpha.1, < 14) - ffi (~> 1.9) + ohai (18.2.6) + chef-config (>= 14.12, < 19) + chef-utils (>= 16.0, < 19) + ffi (~> 1.9, <= 1.17.0) ffi-yajl (~> 2.2) ipaddress - mixlib-cli (< 2.0) - mixlib-config (~> 2.0) - mixlib-log (>= 1.7.1, < 2.0) - mixlib-shellout (~> 2.0) + mixlib-cli (>= 1.7.0) + mixlib-config (>= 2.0, < 4.0) + mixlib-log (>= 2.0.1, < 4.0) + mixlib-shellout (~> 3.2, >= 3.2.5) plist (~> 3.1) - systemu (~> 2.6.4) + train-core wmi-lite (~> 1.0) - plist (3.7.1) - proxifier (1.0.3) - public_suffix (6.0.1) + parallel (1.27.0) + parser (3.3.10.0) + ast (~> 2.4.1) + racc + parslet (2.0.0) + pastel (0.8.0) + tty-color (~> 0.5) + plist (3.7.2) + prism (1.6.0) + proxifier2 (1.1.0) + pry (0.15.2) + coderay (~> 1.1) + method_source (~> 1.0) + public_suffix (6.0.2) racc (1.8.1) - rack (2.2.9) - rake (10.5.0) + rack (3.2.4) + rackup (2.2.1) + rack (>= 3) + rainbow (3.1.1) + rake (13.3.1) + regexp_parser (2.11.3) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) retryable (3.0.5) - rspec (3.13.0) + rexml (3.4.4) + rspec (3.13.2) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) rspec-mocks (~> 3.13.0) - rspec-core (3.13.1) + rspec-core (3.13.6) rspec-support (~> 3.13.0) - rspec-expectations (3.13.3) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-its (1.3.0) - rspec-core (>= 3.0.0) - rspec-expectations (>= 3.0.0) - rspec-mocks (3.13.1) + rspec-its (2.0.0) + rspec-core (>= 3.13.0) + rspec-expectations (>= 3.13.0) + rspec-mocks (3.13.7) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rspec_junit_formatter (0.2.3) - builder (< 4) - rspec-core (>= 2, < 4, != 2.12.0) - rubyzip (1.3.0) - sawyer (0.9.2) + rspec-support (3.13.6) + rubocop (1.81.6) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) + parallel (~> 1.10) + parser (>= 3.3.0.2) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.47.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.48.0) + parser (>= 3.3.7.2) + prism (~> 1.4) + ruby-progressbar (1.13.0) + rubyntlm (0.6.5) + base64 + rubyzip (2.4.1) + sawyer (0.9.3) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) + securerandom (0.4.1) semverse (3.0.2) - serverspec (2.42.3) - multi_json - rspec (~> 3.0) - rspec-its - specinfra (~> 2.72) - sfl (2.3) solve (4.0.4) molinillo (~> 0.6) semverse (>= 1.1, < 4.0) - specinfra (2.90.1) - base64 - net-scp - net-ssh (>= 2.7) - net-telnet - sfl + sslshake (1.3.1) + strings (0.2.1) + strings-ansi (~> 0.2) + unicode-display_width (>= 1.5, < 3.0) + unicode_utils (~> 1.4) + strings-ansi (0.2.0) + syslog (0.3.0) + logger syslog-logger (1.6.8) - systemu (2.6.5) - thor (1.3.2) + thor (1.4.0) + time (0.4.1) + date + timeout (0.4.4) tomlrb (1.3.0) - uri (0.13.1) - uuidtools (2.1.5) + train-core (3.13.4) + addressable (~> 2.5) + ffi (~> 1.16.0) + json (>= 1.8, < 3.0) + mixlib-shellout (>= 2.0, < 4.0) + net-scp (>= 1.2, < 5.0) + net-ssh (>= 2.9, < 8.0) + train-rest (0.5.0) + aws-sigv4 (~> 1.5) + rest-client (~> 2.1) + train-core (~> 3.0) + train-winrm (0.2.19) + chef-winrm (~> 2.3.12) + chef-winrm-elevated (~> 1.2.5) + chef-winrm-fs (~> 1.3.7) + tty-box (0.7.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-cursor (~> 0.7) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.23.1) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.2) + tty-table (0.12.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-screen (~> 0.8) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf_ext (0.0.8.2) + unicode-display_width (2.6.0) + unicode_utils (1.4.0) + uri (1.0.4) + uuidtools (2.2.0) + vault (0.18.2) + aws-sigv4 + webrick (1.9.1) + wisper (2.0.1) wmi-lite (1.0.7) PLATFORMS @@ -258,7 +461,7 @@ PLATFORMS DEPENDENCIES bundler (~> 2.0) dream-ops! - rake (~> 10.0) + rake (~> 13.0) BUNDLED WITH - 2.5.19 + 2.6.9 diff --git a/dream-ops.gemspec b/dream-ops.gemspec index 99e6792..2d17252 100644 --- a/dream-ops.gemspec +++ b/dream-ops.gemspec @@ -8,7 +8,7 @@ Gem::Specification.new do |spec| spec.version = DreamOps::VERSION spec.authors = ["Chris Allen"] spec.email = ["chris@apaxsoftware.com"] - spec.required_ruby_version = ">= 2.3.1" + spec.required_ruby_version = ">= 3.4.0" spec.required_rubygems_version = ">= 2.0.0" spec.summary = "CLI for automating the deployment of application cookbooks" @@ -32,9 +32,9 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_development_dependency "bundler", "~> 2.0" - spec.add_development_dependency "rake", "~> 10.0" + spec.add_development_dependency "rake", "~> 13.0" - spec.add_dependency "rubyzip", "~> 1.2" + spec.add_dependency "rubyzip", "~> 2.0" spec.add_dependency "archive-tar-minitar" spec.add_dependency "nokogiri" spec.add_dependency "aws-sdk-core" @@ -42,7 +42,7 @@ Gem::Specification.new do |spec| spec.add_dependency "aws-sdk-opsworks", "~> 1" spec.add_dependency "aws-sdk-s3", "~> 1" spec.add_dependency "inifile", "~> 3.0" - spec.add_dependency "berkshelf", "~> 7.0" + spec.add_dependency "berkshelf", "~> 8.1" spec.add_dependency "thor", "~> 1.0" - spec.add_dependency "chef", "~> 13.6" + spec.add_dependency "chef", "~> 18.8" end diff --git a/lib/dream-ops/deployment/solo.rb b/lib/dream-ops/deployment/solo.rb index ca1c503..97eb61f 100644 --- a/lib/dream-ops/deployment/solo.rb +++ b/lib/dream-ops/deployment/solo.rb @@ -103,7 +103,7 @@ def analyze_target(target) if cookbooks.length == 1 path = cookbooks[0] loader = Chef::Cookbook::CookbookVersionLoader.new(path) - loader.load_cookbooks + loader.load! cookbook_version = loader.cookbook_version metadata = cookbook_version.metadata