diff --git a/.github/workflows/test_and_publish.yml b/.github/workflows/test_and_publish.yml index dc3339d..303250b 100644 --- a/.github/workflows/test_and_publish.yml +++ b/.github/workflows/test_and_publish.yml @@ -9,8 +9,7 @@ jobs: tests: strategy: matrix: - # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0' - ruby: [2.7, '3.0', 3.1, 3.2] + ruby: ['3.3', '3.4', '4.0'] runs-on: ubuntu-latest steps: @@ -47,7 +46,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2 + ruby-version: '3.4' bundler-cache: true - name: Prepare credentials env: diff --git a/.github/workflows/test_only.yml b/.github/workflows/test_only.yml index 7ef07d1..cc18cc9 100644 --- a/.github/workflows/test_only.yml +++ b/.github/workflows/test_only.yml @@ -7,8 +7,7 @@ jobs: tests: strategy: matrix: - # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0' - ruby: [2.7, '3.0', 3.1, 3.2] + ruby: ['3.3', '3.4', '4.0'] runs-on: ubuntu-latest steps: @@ -31,7 +30,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.2' + ruby-version: '3.4' bundler-cache: true - name: Set up Node uses: actions/setup-node@v2 diff --git a/.rubocop.yml b/.rubocop.yml index 6c68e54..5a9868d 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,7 +4,7 @@ inherit_from: inherit_gem: prettier: rubocop.yml -require: +plugins: - rubocop-faker - rubocop-performance - rubocop-sorbet @@ -14,7 +14,7 @@ AllCops: DisplayStyleGuide: true DisplayCopNames: true SuggestExtensions: false - TargetRubyVersion: 2.6 + TargetRubyVersion: 3.3 Exclude: - 'bin/*' - 'vendor/**/*' @@ -34,3 +34,14 @@ Style: Gemspec/RequiredRubyVersion: Enabled: false + +# `delete` and `revive` mirror Shotgrid's REST verbs; they are imperative +# actions that happen to return `true` on success, not predicates. +Naming/PredicateMethod: + Exclude: + - 'lib/shotgrid_api_ruby/entities.rb' + +# Sorbet `sig` cannot reference an anonymous `&` block parameter, so the +# explicit `&block` form is required wherever a method has a Sorbet signature. +Naming/BlockForwarding: + EnforcedStyle: explicit diff --git a/.ruby-version b/.ruby-version index 944880f..b9b3b0d 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.0 +3.3.11 diff --git a/CHANGELOG.md b/CHANGELOG.md index bc8413e..f35c31a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0.8] - 2026-05-10 + +### Added + +- Explicit dependency on `ostruct` (no longer in default gems on Ruby 4.0+) + +### Changed + +- Bumped minimum Ruby to 3.3 and updated the CI matrix to non-EOL versions (3.3, 3.4, 4.0) +- Upgraded Sorbet/Tapioca stack (sorbet-static now ships arm64-darwin-25 binaries) +- Bumped RuboCop and migrated `require:` extensions to the new `plugins:` syntax; `TargetRubyVersion` raised to 3.3 +- Refreshed gem RBIs against the updated dependencies + +### Fixed + +- Gemspec metadata: `homepage_uri`, `source_code_uri` and `changelog_uri` were silently overwritten by a subsequent `spec.metadata = {…}` assignment; consolidated into a single hash literal so all entries are published + ## [0.2.0.6] - 2023-01-29 ### Added diff --git a/Gemfile.lock b/Gemfile.lock index b62bcb5..2cad8dd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,37 +1,52 @@ PATH remote: . specs: - shotgrid_api_ruby (0.2.0.7) + shotgrid_api_ruby (0.2.0.8) activesupport (~> 7) faraday (~> 1) + ostruct sorbet-runtime zeitwerk (~> 2.2) GEM remote: https://rubygems.org/ specs: - activesupport (7.0.4.2) - concurrent-ruby (~> 1.0, >= 1.0.2) + activesupport (7.2.3.1) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - ast (2.4.2) + logger (>= 1.4.2) + minitest (>= 5.1, < 6) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + ast (2.4.3) backport (1.2.0) - benchmark (0.2.1) - bundler-audit (0.9.1) - bundler (>= 1.2.0, < 3) + base64 (0.3.0) + benchmark (0.5.0) + bigdecimal (4.1.2) + bundler-audit (0.9.3) + bundler (>= 1.2.0) thor (~> 1.0) - byebug (11.1.3) - childprocess (4.1.0) + byebug (13.0.0) + reline (>= 0.6.0) + childprocess (5.1.0) + logger (~> 1.5) coderay (1.1.3) - concurrent-ruby (1.2.0) - diff-lcs (1.5.0) - docile (1.4.0) - dotenv (2.8.1) + concurrent-ruby (1.3.6) + connection_pool (3.0.2) + diff-lcs (1.6.2) + docile (1.4.1) + dotenv (3.2.0) + drb (2.2.3) e2mmap (0.1.0) - faker (3.1.0) + erubi (1.13.1) + faker (3.8.0) i18n (>= 1.8.11, < 2) - faraday (1.10.3) + faraday (1.10.5) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -44,21 +59,24 @@ GEM faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) + faraday-em_synchrony (1.0.1) faraday-excon (1.1.0) faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) - faraday-net_http (1.0.1) + faraday-multipart (1.2.0) + multipart-post (~> 2.0) + faraday-net_http (1.0.2) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) faraday-rack (1.0.0) - faraday-retry (1.0.3) - ffi (1.15.5) - formatador (1.1.0) - guard (2.18.0) + faraday-retry (1.0.4) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86_64-linux-gnu) + formatador (1.2.3) + reline + guard (2.20.1) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) + logger (~> 1.6) lumberjack (>= 1.0.12, < 2.0) nenv (~> 0.1) notiffany (~> 0.0) @@ -70,113 +88,133 @@ GEM guard (~> 2.1) guard-compat (~> 1.1) rspec (>= 2.99.0, < 4.0) - haml (6.1.1) + haml (7.2.0) temple (>= 0.8.2) thor tilt - i18n (1.12.0) + i18n (1.14.8) concurrent-ruby (~> 1.0) iniparse (1.5.0) - jaro_winkler (1.5.4) - json (2.6.3) - kramdown (2.4.0) - rexml + io-console (0.8.2) + jaro_winkler (1.7.0) + json (2.19.5) + kramdown (2.5.2) + rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - listen (3.8.0) + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - lumberjack (1.2.8) - method_source (1.0.0) - minitest (5.17.0) - multipart-post (2.3.0) + logger (1.7.0) + lumberjack (1.4.2) + method_source (1.1.0) + minitest (5.27.0) + multipart-post (2.4.1) nenv (0.3.0) netrc (0.11.0) - nokogiri (1.14.0-arm64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.14.0-x86_64-linux) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - overcommit (0.60.0) - childprocess (>= 0.6.3, < 5) + ostruct (0.6.3) + overcommit (0.69.0) + childprocess (>= 0.6.3, < 6) iniparse (~> 1.4) - rexml (~> 3.2) - parallel (1.22.1) - parser (3.2.0.0) + rexml (>= 3.3.9) + parallel (2.1.0) + parser (3.3.11.1) ast (~> 2.4.1) - prettier (3.2.2) - syntax_tree (>= 2.7.1) - syntax_tree-haml (>= 1.1.0) + racc + prettier (4.0.4) + syntax_tree (>= 4.0.1) + syntax_tree-haml (>= 2.0.0) syntax_tree-rbs (>= 0.2.0) - prettier_print (1.2.0) - pry (0.14.2) + prettier_print (1.2.1) + prism (1.9.0) + pry (0.16.0) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) - racc (1.6.2) + reline (>= 0.6.0) + pry-byebug (3.12.0) + byebug (~> 13.0) + pry (>= 0.13, < 0.17) + racc (1.8.1) rainbow (3.1.1) - rake (13.0.6) + rake (13.4.2) rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) - rbi (0.0.16) - ast - parser (>= 2.6.4.0) - sorbet-runtime (>= 0.5.9204) - unparser - rbs (2.8.4) - regexp_parser (2.6.2) + rbi (0.3.11) + prism (~> 1.0) + rbs (>= 4.0.1) + rbs (4.0.2) + logger + prism (>= 1.6.0) + tsort + regexp_parser (2.12.0) + reline (0.6.3) + io-console (~> 0.5) + require-hooks (0.4.0) reverse_markdown (2.1.1) nokogiri - rexml (3.2.5) - rspec (3.12.0) - rspec-core (~> 3.12.0) - rspec-expectations (~> 3.12.0) - rspec-mocks (~> 3.12.0) - rspec-core (3.12.0) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.2) + 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.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.3) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-support (3.12.0) - rspec_in_context (1.1.0.3) - activesupport (> 2.0) - rspec (> 3.0) - rubocop (1.44.1) + rspec-support (~> 3.13.0) + rspec-support (3.13.7) + rspec_in_context (1.2.2) + rspec (~> 3.0) + rubocop (1.86.1) json (~> 2.3) - parallel (~> 1.10) - parser (>= 3.2.0.0) + 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 (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.24.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.24.1) - parser (>= 3.1.1.0) - rubocop-faker (1.1.0) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.49.1) + parser (>= 3.3.7.2) + prism (~> 1.7) + rubocop-faker (1.3.0) faker (>= 2.12.0) - rubocop (>= 0.82.0) - rubocop-performance (1.15.2) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - rubocop-sorbet (0.6.11) - rubocop (>= 0.90.0) - ruby-progressbar (1.11.0) + lint_roller (~> 1.1) + rubocop (>= 1.72.1) + rubocop-performance (1.26.1) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.47.1, < 2.0) + rubocop-sorbet (0.12.0) + lint_roller + rubocop (>= 1.75.2) + ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) + rubydex (0.2.2-arm64-darwin) + rubydex (0.2.2-x86_64-linux) + securerandom (0.4.1) shellany (0.0.1) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.2) simplecov_json_formatter (0.1.4) solargraph (0.48.0) backport (~> 1.2) @@ -193,62 +231,71 @@ GEM thor (~> 1.0) tilt (~> 2.0) yard (~> 0.9, >= 0.9.24) - sorbet (0.5.10634) - sorbet-static (= 0.5.10634) - sorbet-runtime (0.5.10634) - sorbet-static (0.5.10634-universal-darwin-22) - sorbet-static (0.5.10634-x86_64-linux) - sorbet-static-and-runtime (0.5.10634) - sorbet (= 0.5.10634) - sorbet-runtime (= 0.5.10634) - spoom (1.1.15) - sorbet (>= 0.5.10187) - sorbet-runtime (>= 0.5.9204) + sorbet (0.6.13208) + sorbet-static (= 0.6.13208) + sorbet-runtime (0.6.13208) + sorbet-static (0.6.13208-universal-darwin) + sorbet-static (0.6.13208-x86_64-linux) + sorbet-static-and-runtime (0.6.13208) + sorbet (= 0.6.13208) + sorbet-runtime (= 0.6.13208) + spoom (1.7.14) + erubi (>= 1.10.0) + prism (>= 0.28.0) + rbi (>= 0.3.3) + rbs (>= 4.0.0.dev.5) + rexml (>= 3.2.6) + sorbet-static-and-runtime (>= 0.5.10187) thor (>= 0.19.2) - syntax_tree (5.3.0) + syntax_tree (6.3.0) prettier_print (>= 1.2.0) - syntax_tree-haml (3.0.0) - haml (>= 5.2, != 6.0.0) - prettier_print (>= 1.0.0) - syntax_tree (>= 5.0.1) - syntax_tree-rbs (0.5.1) + syntax_tree-haml (4.0.3) + haml (>= 5.2) + prettier_print (>= 1.2.1) + syntax_tree (>= 6.0.0) + syntax_tree-rbs (1.0.0) prettier_print rbs syntax_tree (>= 2.0.1) - tapioca (0.10.5) - bundler (>= 1.17.3) + tapioca (0.19.1) + benchmark + bundler (>= 2.2.25) netrc (>= 0.11.0) parallel (>= 1.21.0) - rbi (~> 0.0.0, >= 0.0.16) - sorbet-static-and-runtime (>= 0.5.10187) - spoom (~> 1.1.0, >= 1.1.11) + rbi (>= 0.3.7) + require-hooks (>= 0.2.2) + rubydex (>= 0.1.0.beta10) + sorbet-static-and-runtime (>= 0.6.12698) + spoom (>= 1.7.9) thor (>= 1.2.0) - yard-sorbet - temple (0.10.0) - thor (1.2.1) - tilt (2.0.11) - timecop (0.9.6) - tzinfo (2.0.5) + tsort + temple (0.10.4) + thor (1.5.0) + tilt (2.7.0) + timecop (0.9.11) + tsort (0.2.0) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.4.2) - unparser (0.6.7) - diff-lcs (~> 1.3) - parser (>= 3.2.0) - vcr (6.1.0) - webrick (1.7.0) - yard (0.9.28) - webrick (~> 1.7.0) - yard-sorbet (0.8.0) - sorbet-runtime (>= 0.5) - yard (>= 0.9) - zeitwerk (2.6.6) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) + unparser (0.9.0) + diff-lcs (>= 1.6, < 3) + parser (>= 3.3.0) + prism (>= 1.5.1) + vcr (6.4.0) + yard (0.9.43) + yard-sorbet (0.9.0) + sorbet-runtime + yard + zeitwerk (2.7.5) PLATFORMS arm64-darwin-22 + arm64-darwin-25 x86_64-linux DEPENDENCIES - bundler bundler-audit (> 0.6.0) dotenv faker @@ -276,4 +323,4 @@ DEPENDENCIES yard-sorbet BUNDLED WITH - 2.4.1 + 4.0.0 diff --git a/docs/.DS_Store b/docs/.DS_Store new file mode 100644 index 0000000..c888bfa Binary files /dev/null and b/docs/.DS_Store differ diff --git a/docs/ShotgridApiRuby.html b/docs/ShotgridApiRuby.html index fd3c2c2..1887396 100644 --- a/docs/ShotgridApiRuby.html +++ b/docs/ShotgridApiRuby.html @@ -6,13 +6,13 @@ Module: ShotgridApiRuby - — Documentation by YARD 0.9.28 + — Documentation by YARD 0.9.43 - + - +