Skip to content

Commit 43c98b8

Browse files
AP-588 Upgrade Rails to 8.0.x (#20)
* Upgrade Rails to 7.0.10 * Upgrade Rails to 7.1.x and update dependencies * Upgrade Rails to 7.2.x and update dependencies * Upgrade Rails to 8.0.x and update dependencies * Upgrade Rails to 8.0.5 * fix database connection * Rails 8 requires a secret_key_base so setting it to a dummy value for testing * Add test to make sure 404 response is handled gracefully * Bump bundler to v2.7.2 * Change to verify which is better than active * Ran app:update * Update a couple of items to new versions and tweak git build * Revert git build to use dummy secret for validating DB migrations * Update default initializers 7_1 and 7_2 * Update default initializers 8_0 * Updating config.load_defaults to 8.0 after testing all initializers for 7.1, 7.2 and 8.0
1 parent 2fd40c7 commit 43c98b8

31 files changed

+417
-320
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,9 @@ jobs:
132132
- name: Validate database migrations
133133
env:
134134
RAILS_ENV: production
135+
SECRET_KEY_BASE: dummy_test_secret_key_base
135136
DISABLE_DATABASE_ENVIRONMENT_CHECK: 1
136-
run: rails --trace db:drop db:create db:migrate
137+
run: bundle exec rails --trace db:drop db:create db:migrate
137138

138139
- name: Upload artifacts
139140
if: ${{ always() }}

.rubocop.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
require:
1+
plugins:
22
- rubocop-rails
33

44
AllCops:
5+
TargetRailsVersion: 8.0
56
UseCache: false
67
Exclude:
78
# Exclude generated files
@@ -185,7 +186,7 @@ Lint/TripleQuotes: # (new in 1.9)
185186
Enabled: true
186187
Style/IfWithBooleanLiteralBranches: # (new in 1.9)
187188
Enabled: true
188-
Gemspec/DateAssignment: # (new in 1.10)
189+
Gemspec/DeprecatedAttributeAssignment:
189190
Enabled: true
190191
Style/HashConversion: # (new in 1.10)
191192
Enabled: true

Dockerfile

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ RUN mkdir -p /opt/app \
2929
# ------------------------------------------------------------
3030
# Install packages common to dev and prod.
3131

32-
# Get list of available packages
33-
RUN apt-get update -qq
34-
3532
# Install standard packages from the Debian repository
36-
RUN apt-get install -y --no-install-recommends \
33+
RUN apt-get update -qq && apt-get install -y --no-install-recommends \
3734
libpq-dev \
38-
libvips42
35+
libvips42 \
36+
libyaml-dev \
37+
pkg-config \
38+
&& rm -rf /var/lib/apt/lists/*
3939

4040
# ------------------------------------------------------------
4141
# Run configuration
@@ -75,10 +75,11 @@ FROM base AS development
7575
USER root
7676

7777
# Install system packages needed to build gems with C extensions.
78-
RUN apt-get install -y --no-install-recommends \
78+
RUN apt-get update -qq && apt-get install -y --no-install-recommends \
7979
gcc \
8080
g++ \
81-
make
81+
make \
82+
&& rm -rf /var/lib/apt/lists/*
8283

8384
# ------------------------------------------------------------
8485
# Install Ruby gems
@@ -87,7 +88,7 @@ RUN apt-get install -y --no-install-recommends \
8788
USER $APP_USER
8889

8990
# Base image ships with an older version of bundler
90-
RUN gem install bundler --version 2.5.22
91+
RUN gem install bundler --version 2.7.2
9192

9293
# Install gems. We don't enforce the validity of the Gemfile.lock until the
9394
# final (production) stage.

Gemfile

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,22 @@ ruby '~> 3.3'
55

66
gem 'berkeley_library-alma', '~> 0.1.1'
77
gem 'berkeley_library-logging', '~> 0.3'
8-
gem 'berkeley_library-util', '~> 0.2.0'
8+
gem 'berkeley_library-util', '~> 0.3'
99
gem 'drb'
1010
gem 'image_processing', '~> 1.12'
1111
gem 'jsonapi.rb', '~> 2.0'
1212
gem 'jsonapi-serializer', '~> 2.2'
1313
gem 'jwt', '~> 2.4'
1414
gem 'mutex_m'
15-
gem 'omniauth', '~> 1.9', '>= 1.9.2'
16-
gem 'omniauth-cas', '~> 2.0'
15+
gem 'omniauth', '~> 2.1'
16+
gem 'omniauth-cas', '~> 3.0'
17+
gem 'omniauth-rails_csrf_protection', '~> 1.0'
1718
gem 'pg', '~> 1.4'
1819
gem 'pg_search', '~> 2.3'
19-
gem 'puma', '~> 5.0'
20+
gem 'puma', '~> 7.2'
2021
gem 'rack-cors'
21-
gem 'rails', '~> 7.0.4'
22-
gem 'ransack', '~> 2.6'
22+
gem 'rails', '~> 8.0.5'
23+
gem 'ransack', '~> 4.2'
2324
gem 'zaru', '~> 0.3.0'
2425

2526
group :development, :test do
@@ -30,19 +31,20 @@ end
3031

3132
group :development do
3233
gem 'hashdiff', '~> 1.0.1'
33-
gem 'rubocop', '~> 1.26.0'
34-
gem 'rubocop-rails', '~> 2.13.2', require: false
35-
gem 'rubocop-rspec', '~> 2.4.0', require: false
34+
gem 'rubocop', '~> 1.86'
35+
gem 'rubocop-rails', '~> 2.34', require: false
36+
gem 'rubocop-rspec', '~> 3.6', require: false
37+
gem 'rubocop-rspec_rails', '~> 2.30', require: false
3638
end
3739

3840
group :test do
3941
gem 'database_cleaner-active_record', '~> 2.0'
4042
gem 'factory_bot_rails'
4143
gem 'rails-controller-testing'
42-
gem 'rspec', '~> 3.10'
43-
gem 'rspec_junit_formatter', '~> 0.5'
44-
gem 'rspec-rails', '~> 5.0'
45-
gem 'simplecov', '~> 0.21', require: false
46-
gem 'simplecov-rcov', '~> 0.2', require: false
44+
gem 'rspec', '~> 3.13'
45+
gem 'rspec_junit_formatter', '~> 0.6'
46+
gem 'rspec-rails', '~> 8.0'
47+
gem 'simplecov', '~> 0.22', require: false
48+
gem 'simplecov-rcov', '~> 0.3', require: false
4749
gem 'webmock', require: false
4850
end

0 commit comments

Comments
 (0)