From 88dea275b9cec52043c5cf111897d50bdbf32737 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 30 Nov 2023 16:57:16 +0000 Subject: [PATCH 01/10] Remove pidfile config. This stops Rails/Puma from trying to write pidfiles, which we don't need or want since we're using containers. --- config/puma.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/puma.rb b/config/puma.rb index fa40ee6f..0efcc1fa 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -21,9 +21,6 @@ # environment ENV.fetch("RAILS_ENV") { "development" } -# Specifies the `pidfile` that Puma will use. -pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } - # Specifies the number of `workers` to boot in clustered mode. # Workers are forked web server processes. If using threads and workers together # the concurrency of the application would be max `threads` * `workers`. From 541e9167109c5b0819bc11f791155cd80a11c6c4 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 30 Nov 2023 16:59:39 +0000 Subject: [PATCH 02/10] Remove unneeded tmp_restart Puma plugin. We don't need this (not even in devel) so let's lose it. --- config/puma.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/puma.rb b/config/puma.rb index 0efcc1fa..a1da6f38 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -35,6 +35,3 @@ # process behavior so workers use less memory. # # preload_app! - -# Allow puma to be restarted by `rails restart` command. -plugin :tmp_restart From d21b56c9ba34752ac4e695a2773618a262ee6ef3 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 30 Nov 2023 17:00:20 +0000 Subject: [PATCH 03/10] Use govuk-ruby-images and refactor Dockerfile. - Use govuk-ruby-base/builder images so we get the Ruby tmpdir workaround, jemalloc, preinstalled common packages, faster builds etc. - Two-stage build so we don't include build cruft in the final image. - Add OCI source label. --- docker/Dockerfile | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1783c088..55f8611a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,20 +1,23 @@ -FROM ruby:3.2.2 +ARG ruby_version=3.2 +ARG base_image=ghcr.io/alphagov/govuk-ruby-base:$ruby_version +ARG builder_image=ghcr.io/alphagov/govuk-ruby-builder:$ruby_version -WORKDIR /srv/app/datagovuk_find +FROM $builder_image AS builder -RUN apt-get update -RUN apt-get install -y nodejs postgresql postgresql-contrib +WORKDIR $APP_HOME +COPY Gemfile* .ruby-version ./ +RUN bundle install +COPY . ./ +RUN ES_HOST=x rails assets:precompile && rm -fr log -# to install yarn we have to remove cmdtest -RUN apt-get remove -y cmdtest -RUN apt autoremove -y -RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - -RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list -RUN apt-get update && apt-get install -y yarn -COPY ./ /srv/app/datagovuk_find +FROM $base_image -RUN gem install bundler && \ - bundle install && \ - bin/yarn && \ - rails assets:precompile +WORKDIR $APP_HOME +COPY --from=builder $BUNDLE_PATH $BUNDLE_PATH +COPY --from=builder $APP_HOME . + +USER app +CMD ["puma"] + +LABEL org.opencontainers.image.source=https://github.com/alphagov/datagovuk_find From c89ecab20b083c174faf49595df36d5b24252e78 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Wed, 14 Feb 2024 23:23:30 +0000 Subject: [PATCH 04/10] Delete disused config files. Find no longer runs on CloudFoundry. --- Procfile | 1 - integration-manifest.yml | 19 ------------------- production-manifest.yml | 21 --------------------- staging-manifest.yml | 20 -------------------- 4 files changed, 61 deletions(-) delete mode 100644 Procfile delete mode 100644 integration-manifest.yml delete mode 100644 production-manifest.yml delete mode 100644 staging-manifest.yml diff --git a/Procfile b/Procfile deleted file mode 100644 index 0ed27b44..00000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: bin/rails server diff --git a/integration-manifest.yml b/integration-manifest.yml deleted file mode 100644 index b0403ce5..00000000 --- a/integration-manifest.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -applications: -- name: find-data-beta-integration - instances: 1 - memory: 512M - buildpack: https://github.com/cloudfoundry/ruby-buildpack.git#v1.10.4 - stack: cflinuxfs3 - routes: - - route: find-data-beta-integration.cloudapps.digital - env: - RAILS_ENV: integration - RACK_ENV: integration - CKAN_REDIRECTION_URL: ckan.integration.publishing.service.gov.uk - GOVUK_APP_DOMAIN: www.gov.uk - GOVUK_WEBSITE_ROOT: https://www.gov.uk - services: - - find-integration-secrets - - opensearch-integration - - logit-ssl-drain diff --git a/production-manifest.yml b/production-manifest.yml deleted file mode 100644 index 0be83752..00000000 --- a/production-manifest.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -applications: -- name: find-data-beta - instances: 4 - memory: 2048M - buildpack: https://github.com/cloudfoundry/ruby-buildpack.git#v1.10.4 - stack: cflinuxfs3 - routes: - - route: find-data-beta.cloudapps.digital - - route: data.gov.uk - - route: www.data.gov.uk - env: - RAILS_ENV: production - RACK_ENV: production - CKAN_DOMAIN: ckan.publishing.service.gov.uk - GOVUK_APP_DOMAIN: www.gov.uk - GOVUK_WEBSITE_ROOT: https://www.gov.uk - services: - - find-production-secrets - - opensearch-production - - logit-ssl-drain diff --git a/staging-manifest.yml b/staging-manifest.yml deleted file mode 100644 index ad808341..00000000 --- a/staging-manifest.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -applications: -- name: find-data-beta-staging - instances: 1 - memory: 512M - buildpack: https://github.com/cloudfoundry/ruby-buildpack.git#v1.10.4 - stack: cflinuxfs3 - routes: - - route: find-data-beta-staging.cloudapps.digital - - route: staging.data.gov.uk - env: - RAILS_ENV: staging - RACK_ENV: staging - CKAN_DOMAIN: ckan.staging.publishing.service.gov.uk - GOVUK_APP_DOMAIN: www.gov.uk - GOVUK_WEBSITE_ROOT: https://www.gov.uk - services: - - find-staging-secrets - - opensearch-staging - - logit-ssl-drain From 736ebb6eda1a3ea228fe42a5f7a125ea1207a7d7 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Wed, 14 Feb 2024 23:36:43 +0000 Subject: [PATCH 05/10] Add .dockerignore to make local builds more robust. --- .dockerignore | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..5ead2154 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +.dockerignore +.git +.gitignore +.github +Dockerfile +README.md +coverage +docs +log +node_modules +spec +test +tmp +vendor/bundle From 1ed34e67c82a0b76c788d3fb598e10a92f9dacfd Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 15 Feb 2024 00:11:36 +0000 Subject: [PATCH 06/10] Avoid pinning the Ruby "tiny" (patch) version. We want to be on the latest patch version by default. --- Gemfile | 2 -- Gemfile.lock | 3 --- 2 files changed, 5 deletions(-) diff --git a/Gemfile b/Gemfile index 72704cab..f8e2b650 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,5 @@ source "https://rubygems.org" -ruby File.read(".ruby-version").strip - gem "rails", "7.0.5.1" gem "addressable" diff --git a/Gemfile.lock b/Gemfile.lock index 6efd6980..52fbfe9b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -503,8 +503,5 @@ DEPENDENCIES webmock zendesk_api -RUBY VERSION - ruby 3.2.0p0 - BUNDLED WITH 2.1.4 From b6e3ed844b7a87ba52243bc96ec63b82c7518949 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 15 Feb 2024 00:15:09 +0000 Subject: [PATCH 07/10] bundle update --bundler --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 52fbfe9b..932c3af7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -504,4 +504,4 @@ DEPENDENCIES zendesk_api BUNDLED WITH - 2.1.4 + 2.5.6 From aa93b0d868722f39ff9020451cbc9f63bfd3265b Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 15 Feb 2024 00:18:54 +0000 Subject: [PATCH 08/10] bundle update --- Gemfile.lock | 449 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 330 insertions(+), 119 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 932c3af7..9a40ed89 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -66,43 +66,46 @@ GEM i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) + base64 (0.2.0) + bigdecimal (3.1.6) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.10.3) + bootsnap (1.18.3) msgpack (~> 1.2) - brakeman (5.4.1) + brakeman (6.1.2) + racc browser (5.3.1) builder (3.2.4) byebug (11.1.3) - capybara (3.39.2) + capybara (3.40.0) addressable matrix mini_mime (>= 0.1.3) - nokogiri (~> 1.8) + nokogiri (~> 1.11) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) coderay (1.1.3) - concurrent-ruby (1.2.2) - crack (0.4.5) + concurrent-ruby (1.2.3) + crack (1.0.0) + bigdecimal rexml crass (1.0.6) - date (3.3.3) - debug_inspector (1.1.0) - diff-lcs (1.5.0) + date (3.3.4) + debug_inspector (1.2.0) + diff-lcs (1.5.1) docile (1.4.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) + domain_name (0.6.20240107) elasticsearch (7.11.2) elasticsearch-api (= 7.11.2) elasticsearch-transport (= 7.11.2) elasticsearch-api (7.11.2) multi_json - elasticsearch-model (7.2.0) + elasticsearch-model (7.2.1) activesupport (> 3) elasticsearch (~> 7) hashie @@ -111,8 +114,8 @@ GEM faraday (~> 1) multi_json erubi (1.12.0) - execjs (2.8.1) - factory_bot (6.2.0) + execjs (2.9.1) + factory_bot (6.4.6) activesupport (>= 5.0.0) faraday (1.10.3) faraday-em_http (~> 1.0) @@ -139,11 +142,17 @@ GEM faraday-retry (1.0.3) faraday_middleware (1.2.0) faraday (~> 1.0) - ffi (1.15.5) - globalid (1.1.0) - activesupport (>= 5.0) - govuk_app_config (7.2.1) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.3) + googleapis-common-protos-types (1.12.0) + google-protobuf (~> 3.18) + govuk_app_config (9.9.1) logstasher (~> 2.1) + opentelemetry-exporter-otlp (>= 0.25, < 0.27) + opentelemetry-instrumentation-all (>= 0.39.1, < 0.57.0) + opentelemetry-sdk (~> 1.2) plek (>= 4, < 6) prometheus_exporter (~> 2.0) puma (>= 5.6, < 7.0) @@ -157,7 +166,7 @@ GEM sass (>= 3.2.0) govuk_frontend_toolkit (9.0.1) railties (>= 3.1.0) - govuk_personalisation (0.13.0) + govuk_personalisation (0.15.0) plek (>= 1.9.0) rails (>= 6, < 8) govuk_publishing_components (28.7.1) @@ -169,16 +178,16 @@ GEM rails (>= 6) rouge sprockets (< 4) - govuk_test (3.0.1) + govuk_test (4.0.2) brakeman (>= 5.0.2) capybara (>= 3.36) puma selenium-webdriver (>= 4.0) - hashdiff (1.0.1) + hashdiff (1.1.0) hashie (5.0.0) htmlentities (4.3.4) http-accept (1.7.0) - http-cookie (1.0.4) + http-cookie (1.0.5) domain_name (~> 0.5) i18n (1.14.1) concurrent-ruby (~> 1.0) @@ -186,11 +195,11 @@ GEM jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) - jquery-rails (4.4.0) + jquery-rails (4.6.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - json (2.6.2) + json (2.7.1) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -205,10 +214,11 @@ GEM kaminari-core (1.2.2) kramdown (2.4.0) rexml - listen (3.7.1) + language_server-protocol (3.17.0.3) + listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - lograge (0.11.2) + lograge (0.14.0) actionpack (>= 4) activesupport (>= 4) railties (>= 4) @@ -217,7 +227,7 @@ GEM logstasher (2.1.5) activesupport (>= 5.2) request_store - loofah (2.21.3) + loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -228,54 +238,249 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mime-types (3.4.1) + mime-types (3.5.2) mime-types-data (~> 3.2015) - mime-types-data (3.2022.0105) - mini_mime (1.1.2) - mini_portile2 (2.8.2) - minitest (5.18.1) - msgpack (1.4.5) + mime-types-data (3.2024.0206) + mini_mime (1.1.5) + mini_portile2 (2.8.5) + minitest (5.22.2) + msgpack (1.7.2) multi_json (1.15.0) - multipart-post (2.3.0) - net-imap (0.3.6) + multipart-post (2.4.0) + net-imap (0.4.10) date net-protocol net-pop (0.1.2) net-protocol - net-protocol (0.2.1) + net-protocol (0.2.2) timeout - net-smtp (0.3.3) + net-smtp (0.4.0.1) net-protocol netrc (0.11.0) - nio4r (2.5.9) - nokogiri (1.15.3) + nio4r (2.7.0) + nokogiri (1.16.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) - parallel (1.22.1) - parser (3.1.2.1) + opentelemetry-api (1.2.5) + opentelemetry-common (0.20.1) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.26.3) + google-protobuf (~> 3.14) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-instrumentation-action_pack (0.9.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rack (~> 0.21) + opentelemetry-instrumentation-action_view (0.7.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-active_support (~> 0.1) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-active_job (0.7.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-active_model_serializers (0.20.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-active_record (0.7.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + ruby2_keywords + opentelemetry-instrumentation-active_support (0.5.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-all (0.56.0) + opentelemetry-instrumentation-active_model_serializers (~> 0.20.1) + opentelemetry-instrumentation-aws_sdk (~> 0.5.0) + opentelemetry-instrumentation-bunny (~> 0.21.0) + opentelemetry-instrumentation-concurrent_ruby (~> 0.21.1) + opentelemetry-instrumentation-dalli (~> 0.25.0) + opentelemetry-instrumentation-delayed_job (~> 0.22.0) + opentelemetry-instrumentation-ethon (~> 0.21.1) + opentelemetry-instrumentation-excon (~> 0.22.0) + opentelemetry-instrumentation-faraday (~> 0.23.1) + opentelemetry-instrumentation-grape (~> 0.1.3) + opentelemetry-instrumentation-graphql (~> 0.27.0) + opentelemetry-instrumentation-gruf (~> 0.1.0) + opentelemetry-instrumentation-http (~> 0.23.1) + opentelemetry-instrumentation-http_client (~> 0.22.1) + opentelemetry-instrumentation-koala (~> 0.20.1) + opentelemetry-instrumentation-lmdb (~> 0.22.1) + opentelemetry-instrumentation-mongo (~> 0.22.1) + opentelemetry-instrumentation-mysql2 (~> 0.25.0) + opentelemetry-instrumentation-net_http (~> 0.22.1) + opentelemetry-instrumentation-pg (~> 0.26.0) + opentelemetry-instrumentation-que (~> 0.7.0) + opentelemetry-instrumentation-racecar (~> 0.3.0) + opentelemetry-instrumentation-rack (~> 0.24.0) + opentelemetry-instrumentation-rails (~> 0.30.0) + opentelemetry-instrumentation-rake (~> 0.2.1) + opentelemetry-instrumentation-rdkafka (~> 0.4.0) + opentelemetry-instrumentation-redis (~> 0.25.1) + opentelemetry-instrumentation-resque (~> 0.5.0) + opentelemetry-instrumentation-restclient (~> 0.22.1) + opentelemetry-instrumentation-ruby_kafka (~> 0.21.0) + opentelemetry-instrumentation-sidekiq (~> 0.25.0) + opentelemetry-instrumentation-sinatra (~> 0.23.1) + opentelemetry-instrumentation-trilogy (~> 0.58.0) + opentelemetry-instrumentation-aws_sdk (0.5.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-base (0.22.3) + opentelemetry-api (~> 1.0) + opentelemetry-registry (~> 0.1) + opentelemetry-instrumentation-bunny (0.21.2) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-concurrent_ruby (0.21.2) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-dalli (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-delayed_job (0.22.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-ethon (0.21.3) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-excon (0.22.0) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-faraday (0.23.4) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-grape (0.1.6) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rack (~> 0.21) + opentelemetry-instrumentation-graphql (0.27.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-gruf (0.1.1) + opentelemetry-api (>= 1.0.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-http (0.23.2) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-http_client (0.22.3) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-koala (0.20.2) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-lmdb (0.22.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-mongo (0.22.2) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-mysql2 (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-net_http (0.22.4) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-pg (0.26.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-que (0.7.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-racecar (0.3.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rack (0.24.0) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rails (0.30.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-action_pack (~> 0.9.0) + opentelemetry-instrumentation-action_view (~> 0.7.0) + opentelemetry-instrumentation-active_job (~> 0.7.0) + opentelemetry-instrumentation-active_record (~> 0.7.0) + opentelemetry-instrumentation-active_support (~> 0.5.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rake (0.2.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rdkafka (0.4.2) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-redis (0.25.3) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-resque (0.5.1) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-restclient (0.22.3) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-ruby_kafka (0.21.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-sidekiq (0.25.2) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-sinatra (0.23.2) + opentelemetry-api (~> 1.0) + opentelemetry-common (~> 0.20.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-instrumentation-rack (~> 0.21) + opentelemetry-instrumentation-trilogy (0.58.0) + opentelemetry-api (~> 1.0) + opentelemetry-instrumentation-base (~> 0.22.1) + opentelemetry-semantic_conventions (>= 1.8.0) + opentelemetry-registry (0.3.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.10.0) + opentelemetry-api (~> 1.0) + parallel (1.24.0) + parser (3.3.0.5) ast (~> 2.4.1) + racc parslet (2.0.0) - pg (1.3.2) - plek (4.0.0) - prometheus_exporter (2.0.8) + pg (1.5.5) + plek (5.0.0) + prometheus_exporter (2.1.0) webrick - pry (0.14.1) + pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.8.0) + pry-byebug (3.10.1) byebug (~> 11.0) - pry (~> 0.10) + pry (>= 0.13, < 0.15) pry-stack_explorer (0.6.1) binding_of_caller (~> 1.0) pry (~> 0.13) - psych (5.1.0) + psych (5.1.2) stringio - public_suffix (4.0.6) - puma (6.3.1) + public_suffix (5.0.4) + puma (6.4.2) nio4r (~> 2.0) - racc (1.7.1) - rack (2.2.7) - rack-proxy (0.7.6) + racc (1.7.3) + rack (2.2.8) + rack-proxy (0.7.7) rack rack-test (2.1.0) rack (>= 1.3) @@ -293,7 +498,7 @@ GEM activesupport (= 7.0.5.1) bundler (>= 1.15.0) railties (= 7.0.5.1) - rails-dom-testing (2.1.1) + rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) @@ -308,69 +513,77 @@ GEM thor (~> 1.0) zeitwerk (~> 2.5) rainbow (3.1.1) - rake (13.0.6) - rb-fsevent (0.11.1) + rake (13.1.0) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - redcarpet (3.5.1) - regexp_parser (2.5.0) - request_store (1.5.1) + redcarpet (3.6.0) + regexp_parser (2.9.0) + request_store (1.6.0) rack (>= 1.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rexml (3.2.5) - rouge (4.1.1) - rspec (3.11.0) - rspec-core (~> 3.11.0) - rspec-expectations (~> 3.11.0) - rspec-mocks (~> 3.11.0) - rspec-core (3.11.0) - rspec-support (~> 3.11.0) - rspec-expectations (3.11.0) + rexml (3.2.6) + rouge (4.2.0) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-mocks (3.11.1) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-rails (5.1.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - railties (>= 5.2) - rspec-core (~> 3.10) - rspec-expectations (~> 3.10) - rspec-mocks (~> 3.10) - rspec-support (~> 3.10) - rspec-support (3.11.0) - rubocop (1.35.0) + rspec-support (~> 3.13.0) + rspec-rails (6.1.1) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.12) + rspec-expectations (~> 3.12) + rspec-mocks (~> 3.12) + rspec-support (~> 3.12) + rspec-support (3.13.0) + rubocop (1.60.2) json (~> 2.3) + language_server-protocol (>= 3.17.0) parallel (~> 1.10) - parser (>= 3.1.2.1) + 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.20.1, < 2.0) + rubocop-ast (>= 1.30.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.21.0) - parser (>= 3.1.1.0) - rubocop-govuk (4.7.0) - rubocop (= 1.35.0) - rubocop-ast (= 1.21.0) - rubocop-rails (= 2.15.2) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) + rubocop-capybara (2.20.0) + rubocop (~> 1.41) + rubocop-factory_bot (2.25.1) + rubocop (~> 1.41) + rubocop-govuk (4.14.0) + rubocop (= 1.60.2) + rubocop-ast (= 1.30.0) + rubocop-rails (= 2.23.1) rubocop-rake (= 0.6.0) - rubocop-rspec (= 2.12.1) - rubocop-rails (2.15.2) + rubocop-rspec (= 2.26.1) + rubocop-rails (2.23.1) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.7.0, < 2.0) + rubocop (>= 1.33.0, < 2.0) + rubocop-ast (>= 1.30.0, < 2.0) rubocop-rake (0.6.0) rubocop (~> 1.0) - rubocop-rspec (2.12.1) - rubocop (~> 1.31) - ruby-progressbar (1.11.0) + rubocop-rspec (2.26.1) + rubocop (~> 1.40) + rubocop-capybara (~> 2.17) + rubocop-factory_bot (~> 2.22) + ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyzip (2.3.2) sass (3.7.4) @@ -388,29 +601,30 @@ GEM sprockets (> 3.0) sprockets-rails tilt - secure_headers (6.3.3) - selenium-webdriver (4.11.0) + secure_headers (6.5.0) + selenium-webdriver (4.18.1) + base64 (~> 0.2) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) - sentry-rails (5.9.0) + sentry-rails (5.16.1) railties (>= 5.0) - sentry-ruby (~> 5.9.0) + sentry-ruby (~> 5.16.1) sentry-raven (3.1.2) faraday (>= 1.0) - sentry-ruby (5.9.0) + sentry-ruby (5.16.1) concurrent-ruby (~> 1.0, >= 1.0.2) simplecov (0.17.1) docile (~> 1.1) json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - spring (2.1.1) + spring (4.1.3) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - spring-watcher-listen (2.0.1) + spring-watcher-listen (2.1.0) listen (>= 2.7, < 4.0) - spring (>= 1.2, < 3.0) + spring (>= 4) sprockets (3.7.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -419,31 +633,28 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) statsd-ruby (1.5.0) - stringio (3.0.6) - thor (1.2.2) - tilt (2.0.10) - timeout (0.4.0) + stringio (3.1.0) + thor (1.3.0) + tilt (2.3.0) + timeout (0.4.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) uglifier (4.2.0) execjs (>= 0.3.0, < 3) - unf (0.1.4) - unf_ext - unf_ext (0.0.8) - unicode-display_width (2.2.0) - webmock (3.14.0) + unicode-display_width (2.5.0) + webmock (3.22.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) webrick (1.8.1) - websocket (1.2.9) - websocket-driver (0.7.5) + websocket (1.2.10) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.8) - zendesk_api (1.35.0) + zeitwerk (2.6.13) + zendesk_api (1.37.0) faraday (>= 0.9.0, < 2.0.0) hashie (>= 3.5.2, < 6.0.0) inflection From ed1b25ba0de959c023abe80bbf262c51fefa3798 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 15 Feb 2024 00:32:18 +0000 Subject: [PATCH 09/10] Constrain Plek version for govuk_pub_components compat. The old version of govuk_publishing_components we're using has an undeclared constraint in its dependency on Plek. --- Gemfile | 1 + Gemfile.lock | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index f8e2b650..f7f34180 100644 --- a/Gemfile +++ b/Gemfile @@ -26,6 +26,7 @@ gem "nokogiri" gem "parslet" gem "pg" gem "puma" +gem "plek", "~> 4.1" # TODO: unconstrain once govuk_pub_components up-to-date. gem "redcarpet" gem "rest-client" gem "sass-rails" diff --git a/Gemfile.lock b/Gemfile.lock index 9a40ed89..903e2c78 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -461,7 +461,7 @@ GEM racc parslet (2.0.0) pg (1.5.5) - plek (5.0.0) + plek (4.1.0) prometheus_exporter (2.1.0) webrick pry (0.14.2) @@ -693,6 +693,7 @@ DEPENDENCIES nokogiri parslet pg + plek (~> 4.1) pry pry-byebug pry-stack_explorer From ff54341ad1db831f9a4d3f56e8ffc6bc8d2f11f7 Mon Sep 17 00:00:00 2001 From: Chris Banks Date: Thu, 15 Feb 2024 21:38:53 +0000 Subject: [PATCH 10/10] rubocop -A --- Gemfile | 2 +- app/controllers/legacy/search_controller.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index f7f34180..10af3241 100644 --- a/Gemfile +++ b/Gemfile @@ -25,8 +25,8 @@ gem "net-smtp" gem "nokogiri" gem "parslet" gem "pg" +gem "plek", "~> 4.1" # TODO: unconstrain once govuk_pub_components up-to-date. gem "puma" -gem "plek", "~> 4.1" # TODO: unconstrain once govuk_pub_components up-to-date. gem "redcarpet" gem "rest-client" gem "sass-rails" diff --git a/app/controllers/legacy/search_controller.rb b/app/controllers/legacy/search_controller.rb index bbb325ea..c59902af 100644 --- a/app/controllers/legacy/search_controller.rb +++ b/app/controllers/legacy/search_controller.rb @@ -12,6 +12,6 @@ def redirect private def licence_param - return "uk-ogl" if params["license_id-is-ogl"] == "true" + "uk-ogl" if params["license_id-is-ogl"] == "true" end end