From 0b695d361810ed8c6a2fa4c5da6cfb603a3dff0b Mon Sep 17 00:00:00 2001 From: Peter Hamilton Date: Thu, 18 Jul 2024 08:52:50 +0100 Subject: [PATCH] Upgrade to the latest stable Ruby version 3.3.4 (#1266) * Latest stable Ruby version * Upgrade esbuild directly * Run Trivy on all package manager changes * Add extracted CSV gem --- .github/workflows/brakeman.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/cms-search.yml | 2 +- .github/workflows/cms-validate.yml | 2 +- .github/workflows/qa.yml | 2 +- .github/workflows/trivy.yml | 4 + .rubocop.yml | 2 +- .ruby-version | 2 +- .tool-versions | 2 +- Dockerfile | 2 +- Gemfile | 3 +- Gemfile.lock | 6 +- package.json | 2 +- spec/jobs/mail_job_spec.rb | 2 +- yarn.lock | 206 +++++++++++++++-------------- 15 files changed, 129 insertions(+), 112 deletions(-) diff --git a/.github/workflows/brakeman.yml b/.github/workflows/brakeman.yml index dc6008f6d..d179c98a3 100644 --- a/.github/workflows/brakeman.yml +++ b/.github/workflows/brakeman.yml @@ -31,7 +31,7 @@ jobs: name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.2 + ruby-version: 3.3.4 bundler-cache: true - name: Setup Brakeman diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf00acbed..0ae78fc52 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.2 + ruby-version: 3.3.4 bundler-cache: true - name: Install Rubygems diff --git a/.github/workflows/cms-search.yml b/.github/workflows/cms-search.yml index 2cafe19ff..98cf11813 100644 --- a/.github/workflows/cms-search.yml +++ b/.github/workflows/cms-search.yml @@ -33,7 +33,7 @@ jobs: name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.2 + ruby-version: 3.3.4 bundler-cache: true - name: Install Rubygems diff --git a/.github/workflows/cms-validate.yml b/.github/workflows/cms-validate.yml index 8bc50bfa8..0868bbb10 100644 --- a/.github/workflows/cms-validate.yml +++ b/.github/workflows/cms-validate.yml @@ -29,7 +29,7 @@ jobs: name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.2 + ruby-version: 3.3.4 bundler-cache: true - name: Install Rubygems diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index a7d7403d3..24b9a1688 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -57,7 +57,7 @@ jobs: name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.2 + ruby-version: 3.3.4 bundler-cache: true - name: Install Rubygems diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml index ed694b429..ed3d7d1c4 100644 --- a/.github/workflows/trivy.yml +++ b/.github/workflows/trivy.yml @@ -11,6 +11,10 @@ on: push: paths: - Dockerfile + - Gemfile + - Gemfile.lock + - package.json + - yarn.lock env: REGISTRY: ghcr.io/dfe-digital/early-years-foundation-recovery diff --git a/.rubocop.yml b/.rubocop.yml index 96e32f92a..388e8b6ac 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -14,7 +14,7 @@ inherit_mode: require: rubocop-performance AllCops: - TargetRubyVersion: 3.2.2 + TargetRubyVersion: 3.3.4 Style/StringLiterals: EnforcedStyle: single_quotes diff --git a/.ruby-version b/.ruby-version index 9e79f6c4a..6d5369b96 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -ruby-3.2.2 +ruby-3.3.4 diff --git a/.tool-versions b/.tool-versions index 506a4d9ad..b011ec7d7 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,3 @@ nodejs 18.11.0 postgres 15.4 -ruby 3.2.2 +ruby 3.3.4 diff --git a/Dockerfile b/Dockerfile index a1c077bbc..e75673d34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ------------------------------------------------------------------------------ # Base - AMD64 & ARM64 compatible # ------------------------------------------------------------------------------ -FROM ruby:3.2.2-alpine as base +FROM ruby:3.3.4-alpine as base RUN apk add --no-cache --no-progress --no-check-certificate build-base less curl tzdata gcompat diff --git a/Gemfile b/Gemfile index 5471c3e32..8525a3c4c 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '3.2.2' +ruby '3.3.4' gem 'pg' gem 'puma' @@ -64,6 +64,7 @@ gem 'grover' gem 'sitemap_generator' # Data dashboard feed +gem 'csv' gem 'google-cloud-storage' # Background Jobs diff --git a/Gemfile.lock b/Gemfile.lock index 3fcbfe3ca..8b55def87 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -137,6 +137,7 @@ GEM crass (1.0.6) cssbundling-rails (1.4.0) railties (>= 6.0.0) + csv (3.3.0) date (3.3.4) debug (1.9.2) irb (~> 1.10) @@ -657,6 +658,7 @@ DEPENDENCIES capybara contentful_rails cssbundling-rails + csv debug devise dibber @@ -710,7 +712,7 @@ DEPENDENCIES yard-junk RUBY VERSION - ruby 3.2.2p53 + ruby 3.3.4p94 BUNDLED WITH - 2.4.13 + 2.5.11 diff --git a/package.json b/package.json index c3adf0edf..8b440b7e0 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "accessible-autocomplete": "^3.0.0", "axios": "^1.7.2", "dfe-frontend": "^2.0.1", - "esbuild": "^0.21.5", + "esbuild": "^0.23.0", "govuk-frontend": "^5.3.1", "puppeteer": "^22.12.0", "sass": "^1.77.8" diff --git a/spec/jobs/mail_job_spec.rb b/spec/jobs/mail_job_spec.rb index 3e87b7c6d..01635790e 100644 --- a/spec/jobs/mail_job_spec.rb +++ b/spec/jobs/mail_job_spec.rb @@ -3,7 +3,7 @@ RSpec.describe MailJob do describe '.recipients' do it 'expects a scope to filter users' do - expect { described_class.recipients }.to raise_error NoMethodError, "undefined method `mail_job_recipients' for User:Class" + expect { described_class.recipients }.to raise_error NoMethodError, "undefined method `mail_job_recipients' for class User" end end diff --git a/yarn.lock b/yarn.lock index b81788c93..66e26683a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -76,163 +76,170 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" +"@esbuild/aix-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/aix-ppc64@npm:0.23.0" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" +"@esbuild/android-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm64@npm:0.23.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" +"@esbuild/android-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm@npm:0.23.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" +"@esbuild/android-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-x64@npm:0.23.0" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" +"@esbuild/darwin-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-arm64@npm:0.23.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" +"@esbuild/darwin-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-x64@npm:0.23.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" +"@esbuild/freebsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-arm64@npm:0.23.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" +"@esbuild/freebsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-x64@npm:0.23.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" +"@esbuild/linux-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm64@npm:0.23.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" +"@esbuild/linux-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm@npm:0.23.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" +"@esbuild/linux-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ia32@npm:0.23.0" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" +"@esbuild/linux-loong64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-loong64@npm:0.23.0" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" +"@esbuild/linux-mips64el@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-mips64el@npm:0.23.0" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" +"@esbuild/linux-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ppc64@npm:0.23.0" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" +"@esbuild/linux-riscv64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-riscv64@npm:0.23.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" +"@esbuild/linux-s390x@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-s390x@npm:0.23.0" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" +"@esbuild/linux-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-x64@npm:0.23.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" +"@esbuild/netbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/netbsd-x64@npm:0.23.0" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" +"@esbuild/openbsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-arm64@npm:0.23.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-x64@npm:0.23.0" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" +"@esbuild/sunos-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/sunos-x64@npm:0.23.0" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" +"@esbuild/win32-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-arm64@npm:0.23.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" +"@esbuild/win32-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-ia32@npm:0.23.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" +"@esbuild/win32-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-x64@npm:0.23.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -997,33 +1004,34 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.21.5": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" - dependencies: - "@esbuild/aix-ppc64": "npm:0.21.5" - "@esbuild/android-arm": "npm:0.21.5" - "@esbuild/android-arm64": "npm:0.21.5" - "@esbuild/android-x64": "npm:0.21.5" - "@esbuild/darwin-arm64": "npm:0.21.5" - "@esbuild/darwin-x64": "npm:0.21.5" - "@esbuild/freebsd-arm64": "npm:0.21.5" - "@esbuild/freebsd-x64": "npm:0.21.5" - "@esbuild/linux-arm": "npm:0.21.5" - "@esbuild/linux-arm64": "npm:0.21.5" - "@esbuild/linux-ia32": "npm:0.21.5" - "@esbuild/linux-loong64": "npm:0.21.5" - "@esbuild/linux-mips64el": "npm:0.21.5" - "@esbuild/linux-ppc64": "npm:0.21.5" - "@esbuild/linux-riscv64": "npm:0.21.5" - "@esbuild/linux-s390x": "npm:0.21.5" - "@esbuild/linux-x64": "npm:0.21.5" - "@esbuild/netbsd-x64": "npm:0.21.5" - "@esbuild/openbsd-x64": "npm:0.21.5" - "@esbuild/sunos-x64": "npm:0.21.5" - "@esbuild/win32-arm64": "npm:0.21.5" - "@esbuild/win32-ia32": "npm:0.21.5" - "@esbuild/win32-x64": "npm:0.21.5" +"esbuild@npm:^0.23.0": + version: 0.23.0 + resolution: "esbuild@npm:0.23.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.23.0" + "@esbuild/android-arm": "npm:0.23.0" + "@esbuild/android-arm64": "npm:0.23.0" + "@esbuild/android-x64": "npm:0.23.0" + "@esbuild/darwin-arm64": "npm:0.23.0" + "@esbuild/darwin-x64": "npm:0.23.0" + "@esbuild/freebsd-arm64": "npm:0.23.0" + "@esbuild/freebsd-x64": "npm:0.23.0" + "@esbuild/linux-arm": "npm:0.23.0" + "@esbuild/linux-arm64": "npm:0.23.0" + "@esbuild/linux-ia32": "npm:0.23.0" + "@esbuild/linux-loong64": "npm:0.23.0" + "@esbuild/linux-mips64el": "npm:0.23.0" + "@esbuild/linux-ppc64": "npm:0.23.0" + "@esbuild/linux-riscv64": "npm:0.23.0" + "@esbuild/linux-s390x": "npm:0.23.0" + "@esbuild/linux-x64": "npm:0.23.0" + "@esbuild/netbsd-x64": "npm:0.23.0" + "@esbuild/openbsd-arm64": "npm:0.23.0" + "@esbuild/openbsd-x64": "npm:0.23.0" + "@esbuild/sunos-x64": "npm:0.23.0" + "@esbuild/win32-arm64": "npm:0.23.0" + "@esbuild/win32-ia32": "npm:0.23.0" + "@esbuild/win32-x64": "npm:0.23.0" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -1061,6 +1069,8 @@ __metadata: optional: true "@esbuild/netbsd-x64": optional: true + "@esbuild/openbsd-arm64": + optional: true "@esbuild/openbsd-x64": optional: true "@esbuild/sunos-x64": @@ -1073,7 +1083,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b + checksum: d3d91bf9ca73ba33966fc54cabb321eca770a5e2ff5b34d67e4235c94560cfd881803e39fcaa31d842579d10600da5201c5f597f8438679f6db856f75ded7124 languageName: node linkType: hard @@ -1168,7 +1178,7 @@ __metadata: accessible-autocomplete: "npm:^3.0.0" axios: "npm:^1.7.2" dfe-frontend: "npm:^2.0.1" - esbuild: "npm:^0.21.5" + esbuild: "npm:^0.23.0" govuk-frontend: "npm:^5.3.1" puppeteer: "npm:^22.12.0" sass: "npm:^1.77.8"