diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 567469cf0..1f466d72f 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -7,7 +7,7 @@ jobs: strategy: matrix: - ruby: [3.1] + ruby: [3.1, 3.3, 3.4] steps: - uses: actions/checkout@v4 @@ -16,7 +16,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 22 - name: Build the docker-compose stack run: docker compose up -d diff --git a/.rubocop.yml b/.rubocop.yml index 323fc773d..b3c2c864b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -22,7 +22,7 @@ AllCops: - "node_modules/**/*" ExtraDetails: true NewCops: enable - TargetRubyVersion: 3.1 + TargetRubyVersion: 3.4 # readability is Actually Good Layout/EmptyLinesAroundClassBody: diff --git a/.tool-versions b/.tool-versions index 2cdace767..27ea5b5c8 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,3 @@ -yarn 1.22.19 -ruby 3.1.4 -nodejs 18.15.0 +yarn 1.22.22 +ruby 3.3.5 +nodejs 22.14.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index d3abcbcf4..669753791 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ New entries in this file should aim to provide a meaningful amount of informatio ### Changed * skip brakeman Remove brakeman's ruby EOL check +* bump Ruby 3.4 [ualbertalib/library_applications_development#163](https://github.com/ualbertalib/library_applications_development/issues/163) * silence deprecation warnings when running tests ### Chores diff --git a/Gemfile b/Gemfile index c45a1e6c0..a716d8ef6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '>= 3.1.4', '< 3.2' +ruby '>= 3.1.4', '< 3.5' # Core Rails stuff gem 'image_processing' # for ActiveStorage Variants @@ -50,6 +50,7 @@ gem 'sidekiq-unique-jobs', '~> 8.0' # Misc Utilities gem 'aasm' # state-machine management gem 'addressable', '~> 2.8.7' # Replacement for the standard URI implementation +gem 'csv', '~> 3.3', '>= 3.3.2' # CSV parsing gem 'datacite-client', github: 'ualbertalib/datacite-client', tag: 'v0.1.0', require: 'datacite' gem 'differ' # Used to diff two strings gem 'draper' @@ -59,6 +60,7 @@ gem 'flipper-active_record', '~> 1.3.2' # Store feature flags in ActiveRecord gem 'flipper-ui', '~> 1.3.2' # UI for feature flags gem 'jbuilder' # generate JSON objects gem 'kaminari' # Pagination +gem 'ostruct', '~> 0.6.1' # similar to hash gem 'paper_trail', '~> 15.2.0' # Track object changes gem 'ransack', '4.3.0' # ActiveRecord search/filter gem 'redcarpet', '~> 3.6', require: ['redcarpet', 'redcarpet/render_strip'] # Markdown to (X)HTML parser diff --git a/Gemfile.lock b/Gemfile.lock index 3b48d5bb9..98e640325 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -185,6 +185,7 @@ GEM unicode (>= 0.4.4.5) cssbundling-rails (1.4.1) railties (>= 6.0.0) + csv (3.3.2) danger (9.5.1) base64 (~> 0.2) claide (~> 1.0) @@ -394,6 +395,7 @@ GEM ruby-saml (~> 1.17) open4 (1.3.4) os (1.1.4) + ostruct (0.6.1) paper_trail (15.2.0) activerecord (>= 6.1) request_store (~> 1.4) @@ -665,6 +667,7 @@ DEPENDENCIES clamby connection_pool cssbundling-rails + csv (~> 3.3, >= 3.3.2) danger (~> 9.5) datacite-client! debug @@ -690,6 +693,7 @@ DEPENDENCIES omniauth (~> 2.1) omniauth-rails_csrf_protection (~> 1.0) omniauth-saml (~> 2.2) + ostruct (~> 0.6.1) paper_trail (~> 15.2.0) pg (~> 1.5.9) puma (~> 6.6) @@ -726,7 +730,7 @@ DEPENDENCIES wicked RUBY VERSION - ruby 3.1.4p223 + ruby 3.4.1p0 BUNDLED WITH 2.6.3 diff --git a/config/brakeman.yml b/config/brakeman.yml index 322269f6f..7c1265539 100644 --- a/config/brakeman.yml +++ b/config/brakeman.yml @@ -2,5 +2,4 @@ :run_all_checks: true :skip_checks: - CheckUnscopedFind - - CheckEOLRuby :github_repo: ualbertalib/jupiter diff --git a/lib/tasks/digitization_batch_ingest.rake b/lib/tasks/digitization_batch_ingest.rake index b5e94ccf8..dc1135bdb 100644 --- a/lib/tasks/digitization_batch_ingest.rake +++ b/lib/tasks/digitization_batch_ingest.rake @@ -41,7 +41,7 @@ namespace :digitization do # - Give `title` 80 characters of space. # - `processing` should be the longest `status` # - batch `size` should be pretty small to ensure that the jobs can finish in a timely manner - puts format '%38s,%80s,%12s,%7s', 'id', 'title', 'status', 'size' + puts format '%38s,%80s,%12s,%7d', 'id', 'title', 'status', 'size' Digitization::BatchMetadataIngest.order(created_at: :desc).limit(limit).each do |batch_ingest| puts format '%38s,%80s,%12s,%7d', batch_ingest.id, batch_ingest.title, batch_ingest.status, batch_ingest.books.count