Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
7b40fd3
upgrades for Rails 8
Feb 21, 2026
86fa80b
dependency updates
Feb 21, 2026
5aec166
Pagy uses pagy.limit now for number of items on page
Feb 23, 2026
1b1651c
updating depencies, moving to rails 8.0.4, ruby 3.4 and pagy 43
Feb 24, 2026
16c1a70
increased memory for tests
Feb 24, 2026
5232e92
increased memomory for app for tests, only run tests if setup succeeds
Feb 24, 2026
f38e87f
changed based url for IIF server, removed memory allocation for compo…
Feb 24, 2026
29d8df3
using selenium stand alone chrome, broke out steps in build.yml for p…
Feb 24, 2026
e81dbe2
bringin up selenium after assets are precompiled, lowering the reserv…
Feb 24, 2026
26b174c
bypassing yarn build -watch in ci since assets are precompiled in a d…
Feb 24, 2026
5a8f763
only start selenium before rspec needs it
Feb 24, 2026
947f3bc
bringing up compose without dependencies so sellenium doesn't start u…
Feb 24, 2026
d36596b
running precompile as a standalone. hope this fixes memory issue when…
Feb 25, 2026
1e27edf
using dummy key_base for precompile
Feb 25, 2026
70dcef9
for rspec need to have iipsrv, app and selenium running
Feb 25, 2026
ce23cd9
for rspec need to have iipsrv, app and selenium running
Feb 25, 2026
027e216
need bundle exec when calling rspec and rubocop
Feb 25, 2026
6186f89
full rails server not needed for tests, using slimmed down version fo…
Feb 25, 2026
b85b856
running system tests as stand alone
Feb 25, 2026
2558ccd
adding sleep infinity to docker-compose.ci, hopefully fixes memory is…
Feb 25, 2026
81d2b19
refactored do_profile in application_controller
Feb 25, 2026
8f8d748
Added omniauth-rails_csrf_protection gem and updated omniauth intiali…
Feb 25, 2026
44c2021
removed twitter/x logo from footer and deleted icon
Feb 25, 2026
9538275
removed commented out code, set config.yjit false and removed sleep i…
Feb 26, 2026
20f72a5
ran rails app:update and made necessary changes to accommodate the up…
davezuckerman Feb 27, 2026
402beb9
added sleep infinity back in to compose.ci, tests failing in build wi…
davezuckerman Feb 27, 2026
ab39ba3
changed unauthorized user redirect so it goes to a page instead of di…
davezuckerman Feb 27, 2026
7413da5
removed some Gem dependencies, changed a comment in puma config, adde…
davezuckerman Feb 27, 2026
9824c11
fixed a fex minor styling issues in specs
davezuckerman Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,24 +146,26 @@ jobs:
run: |
docker compose build --quiet
docker compose pull --quiet
docker compose up --wait
docker compose exec app rails assets:precompile db:prepare
docker compose exec -e RAILS_ENV=test app rails db:prepare
docker compose up --wait --no-deps db
docker compose run --no-deps --rm -e SECRET_KEY_BASE_DUMMY=1 -e NODE_OPTIONS=--max-old-space-size=512 app rails assets:precompile
docker compose run --no-deps --rm -e RAILS_ENV=development app rails db:prepare
docker compose run --no-deps --rm -e RAILS_ENV=test app rails db:prepare

- name: Run RSpec
if: ${{ always() }}
if: ${{ success() }}
run: |
docker compose exec -e RAILS_ENV=test app rspec --format progress --format html --out artifacts/rspec.html
docker compose up --wait iipsrv app selenium
docker compose exec -e RAILS_ENV=test app bundle exec rspec --format progress --format html --out artifacts/rspec.html

- name: Run Rubocop
if: ${{ always() }}
if: ${{ success() }}
run: |
docker compose exec -e RAILS_ENV=test app rubocop --format progress --format html --out artifacts/rubocop.html
docker compose run --no-deps --rm -e RAILS_ENV=test app bundle exec rubocop --format progress --format html --out artifacts/rubocop.html

- name: Copy out artifacts
if: ${{ always() }}
run: |
docker compose cp app:/opt/app/artifacts ./
docker compose cp selenium:/build ./artifacts
docker compose logs > artifacts/docker-compose-services.log
docker compose config > artifacts/docker-compose.merged.yml

Expand Down
268 changes: 265 additions & 3 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
require:
- rubocop-rails
plugins: rubocop-rails

AllCops:
UseCache: false
TargetRubyVersion: 3.4
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rest of our apps are on 3.3; I don't have a problem with 3.4, but should we be trying to unify them all to a single version? (should 3.4, or even 4.0, be something we look to in a future sprint?)

# Exclude generated files
Exclude:
- 'bin/**/*'
Expand Down Expand Up @@ -185,7 +185,7 @@ Lint/TripleQuotes: # (new in 1.9)
Enabled: true
Style/IfWithBooleanLiteralBranches: # (new in 1.9)
Enabled: true
Gemspec/DateAssignment: # (new in 1.10)
Gemspec/DeprecatedAttributeAssignment:
Enabled: true
Style/HashConversion: # (new in 1.10)
Enabled: true
Expand Down Expand Up @@ -332,3 +332,265 @@ Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13
Enabled: true
Rails/RootJoinChain: # new in 2.13
Enabled: true

# added 20260220
Gemspec/AddRuntimeDependency: # new in 1.65
Enabled: true
Gemspec/AttributeAssignment: # new in 1.77
Enabled: true
Gemspec/DevelopmentDependencies: # new in 1.44
Enabled: true
Layout/EmptyLinesAfterModuleInclusion: # new in 1.79
Enabled: true
Layout/LineContinuationLeadingSpace: # new in 1.31
Enabled: true
Layout/LineContinuationSpacing: # new in 1.31
Enabled: true
Lint/ArrayLiteralInRegexp: # new in 1.71
Enabled: true
Lint/ConstantOverwrittenInRescue: # new in 1.31
Enabled: true
Lint/ConstantReassignment: # new in 1.70
Enabled: true
Lint/CopDirectiveSyntax: # new in 1.72
Enabled: true
Lint/DuplicateMagicComment: # new in 1.37
Enabled: true
Lint/DuplicateMatchPattern: # new in 1.50
Enabled: true
Lint/DuplicateSetElement: # new in 1.67
Enabled: true
Lint/HashNewWithKeywordArgumentsAsDefault: # new in 1.69
Enabled: true
Lint/ItWithoutArgumentsInBlock: # new in 1.59
Enabled: true
Lint/LiteralAssignmentInCondition: # new in 1.58
Enabled: true
Lint/MixedCaseRange: # new in 1.53
Enabled: true
Lint/NonAtomicFileOperation: # new in 1.31
Enabled: true
Lint/NumericOperationWithConstantResult: # new in 1.69
Enabled: true
Lint/RedundantRegexpQuantifiers: # new in 1.53
Enabled: true
Lint/RedundantTypeConversion: # new in 1.72
Enabled: true
Lint/RefinementImportMethods: # new in 1.27
Enabled: true
Lint/RequireRangeParentheses: # new in 1.32
Enabled: true
Lint/SharedMutableDefault: # new in 1.70
Enabled: true
Lint/SuppressedExceptionInNumberConversion: # new in 1.72
Enabled: true
Lint/UnescapedBracketInRegexp: # new in 1.68
Enabled: true
Lint/UselessConstantScoping: # new in 1.72
Enabled: true
Lint/UselessDefaultValueArgument: # new in 1.76
Enabled: true
Lint/UselessDefined: # new in 1.69
Enabled: true
Lint/UselessNumericOperation: # new in 1.66
Enabled: true
Lint/UselessOr: # new in 1.76
Enabled: true
Lint/UselessRescue: # new in 1.43
Enabled: true
Metrics/CollectionLiteralLength: # new in 1.47
Enabled: true
Naming/PredicateMethod: # new in 1.76
Enabled: true
Security/CompoundHash: # new in 1.28
Enabled: true
Style/AmbiguousEndlessMethodDefinition: # new in 1.68
Enabled: true
Style/ArrayIntersect: # new in 1.40
Enabled: true
Style/ArrayIntersectWithSingleElement: # new in 1.81
Enabled: true
Style/BitwisePredicate: # new in 1.68
Enabled: true
Style/CollectionQuerying: # new in 1.77
Enabled: true
Style/CombinableDefined: # new in 1.68
Enabled: true
Style/ComparableBetween: # new in 1.74
Enabled: true
Style/ComparableClamp: # new in 1.44
Enabled: true
Style/ConcatArrayLiterals: # new in 1.41
Enabled: true
Style/DataInheritance: # new in 1.49
Enabled: true
Style/DigChain: # new in 1.69
Enabled: true
Style/DirEmpty: # new in 1.48
Enabled: true
Style/EmptyClassDefinition: # new in 1.84
Enabled: true
Style/EmptyHeredoc: # new in 1.32
Enabled: true
Style/EmptyStringInsideInterpolation: # new in 1.76
Enabled: true
Style/EnvHome: # new in 1.29
Enabled: true
Style/ExactRegexpMatch: # new in 1.51
Enabled: true
Style/FetchEnvVar: # new in 1.28
Enabled: true
Style/FileEmpty: # new in 1.48
Enabled: true
Style/FileNull: # new in 1.69
Enabled: true
Style/FileTouch: # new in 1.69
Enabled: true
Style/HashFetchChain: # new in 1.75
Enabled: true
Style/HashSlice: # new in 1.71
Enabled: true
Style/ItAssignment: # new in 1.70
Enabled: true
Style/ItBlockParameter: # new in 1.75
Enabled: true
Style/KeywordArgumentsMerging: # new in 1.68
Enabled: true
Style/MagicCommentFormat: # new in 1.35
Enabled: true
Style/MapCompactWithConditionalBlock: # new in 1.30
Enabled: true
Style/MapIntoArray: # new in 1.63
Enabled: true
Style/MapToSet: # new in 1.42
Enabled: true
Style/MinMaxComparison: # new in 1.42
Enabled: true
Style/ModuleMemberExistenceCheck: # new in 1.82
Enabled: true
Style/NegativeArrayIndex: # new in 1.84
Enabled: true
Style/ObjectThen: # new in 1.28
Enabled: true
Style/OperatorMethodCall: # new in 1.37
Enabled: true
Style/RedundantArrayConstructor: # new in 1.52
Enabled: true
Style/RedundantArrayFlatten: # new in 1.76
Enabled: true
Style/RedundantConstantBase: # new in 1.40
Enabled: true
Style/RedundantCurrentDirectoryInPath: # new in 1.53
Enabled: true
Style/RedundantDoubleSplatHashBraces: # new in 1.41
Enabled: true
Style/RedundantEach: # new in 1.38
Enabled: true
Style/RedundantFilterChain: # new in 1.52
Enabled: true
Style/RedundantFormat: # new in 1.72
Enabled: true
Style/RedundantHeredocDelimiterQuotes: # new in 1.45
Enabled: true
Style/RedundantInitialize: # new in 1.27
Enabled: true
Style/RedundantInterpolationUnfreeze: # new in 1.66
Enabled: true
Style/RedundantLineContinuation: # new in 1.49
Enabled: true
Style/RedundantRegexpArgument: # new in 1.53
Enabled: true
Style/RedundantRegexpConstructor: # new in 1.52
Enabled: true
Style/RedundantStringEscape: # new in 1.37
Enabled: true
Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
Enabled: true
Style/ReverseFind: # new in 1.84
Enabled: true
Style/SafeNavigationChainLength: # new in 1.68
Enabled: true
Style/SendWithLiteralMethodName: # new in 1.64
Enabled: true
Style/SingleLineDoEndBlock: # new in 1.57
Enabled: true
Style/SuperArguments: # new in 1.64
Enabled: true
Style/SuperWithArgsParentheses: # new in 1.58
Enabled: true
Style/YAMLFileRead: # new in 1.53
Enabled: true
Rails/ActionControllerFlashBeforeRender: # new in 2.16
Enabled: true
Rails/ActionControllerTestCase: # new in 2.14
Enabled: true
Rails/ActionOrder: # new in 2.17
Enabled: true
Rails/ActiveSupportOnLoad: # new in 2.16
Enabled: true
Rails/DangerousColumnNames: # new in 2.21
Enabled: true
Rails/DeprecatedActiveModelErrorsMethods: # new in 2.14
Enabled: true
Rails/DotSeparatedKeys: # new in 2.15
Enabled: true
Rails/DuplicateAssociation: # new in 2.14
Enabled: true
Rails/DuplicateScope: # new in 2.14
Enabled: true
Rails/EnumSyntax: # new in 2.26
Enabled: true
Rails/EnvLocal: # new in 2.22
Enabled: true
Rails/FindByOrAssignmentMemoization: # new in 2.33
Enabled: true
Rails/FreezeTime: # new in 2.16
Enabled: true
Rails/HttpStatusNameConsistency: # new in 2.34
Enabled: true
Rails/I18nLazyLookup: # new in 2.14
Enabled: true
Rails/I18nLocaleTexts: # new in 2.14
Enabled: true
Rails/IgnoredColumnsAssignment: # new in 2.17
Enabled: true
Rails/MigrationClassName: # new in 2.14
Enabled: true
Rails/MultipleRoutePaths: # new in 2.29
Enabled: true
Rails/OrderArguments: # new in 2.33
Enabled: true
Rails/RedirectBackOrTo: # new in 2.34
Enabled: true
Rails/RedundantActiveRecordAllMethod: # new in 2.21
Enabled: true
Rails/ResponseParsedBody: # new in 2.18
Enabled: true
Rails/RootPathnameMethods: # new in 2.16
Enabled: true
Rails/RootPublicPath: # new in 2.15
Enabled: true
Rails/SelectMap: # new in 2.21
Enabled: true
Rails/StripHeredoc: # new in 2.15
Enabled: true
Rails/StrongParametersExpect: # new in 2.29
Enabled: true
Rails/ThreeStateBooleanColumn: # new in 2.19
Enabled: true
Rails/ToFormattedS: # new in 2.15
Enabled: true
Rails/ToSWithArgument: # new in 2.16
Enabled: true
Rails/TopLevelHashWithIndifferentAccess: # new in 2.16
Enabled: true
Rails/TransactionExitStatement: # new in 2.14
Enabled: true
Rails/UnusedRenderContent: # new in 2.21
Enabled: true
Rails/WhereMissing: # new in 2.16
Enabled: true
Rails/WhereNotWithMultipleConditions: # new in 2.17
Enabled: true
Rails/WhereRange: # new in 2.25
Enabled: true
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.2.2
3.4
2 changes: 1 addition & 1 deletion .yarnrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# yarn lockfile v1


lastUpdateCheck 1770150293563
lastUpdateCheck 1771868064007
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# The base stage scaffolds elements which are common to building and running
# the application, such as installing ca-certificates, creating the app user,
# and installing runtime system dependencies.
FROM ruby:3.2.2-slim AS base
FROM ruby:3.4-slim AS base

# ------------------------------------------------------------
# Declarative metadata
Expand Down Expand Up @@ -35,9 +35,12 @@ RUN apt-get update -qq

# Install standard packages from the Debian repository
RUN apt-get install -y --no-install-recommends \
build-essential \
curl \
git \
gpg \
libxml2-dev \
libxslt1-dev \
libpq-dev \
libvips42

Expand Down
Loading