From 4316301457f2f834dfdac7cff359d8eed359c973 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 09:16:09 +0000 Subject: [PATCH 01/25] Bump bootsnap from 1.17.0 to 1.18.4 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.17.0 to 1.18.4. - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.17.0...v1.18.4) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b44e04ec..ed1e829c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -125,7 +125,7 @@ GEM bcrypt (3.1.20) bigdecimal (3.1.7) bindex (0.8.1) - bootsnap (1.17.0) + bootsnap (1.18.4) msgpack (~> 1.2) builder (3.2.4) capybara (3.40.0) From cbd359c363cc04080ea60ad882e29a8b4e45d41d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 09:18:28 +0000 Subject: [PATCH 02/25] Bump tailwindcss-rails from 2.5.0 to 2.7.2 Bumps [tailwindcss-rails](https://github.com/rails/tailwindcss-rails) from 2.5.0 to 2.7.2. - [Release notes](https://github.com/rails/tailwindcss-rails/releases) - [Changelog](https://github.com/rails/tailwindcss-rails/blob/main/CHANGELOG.md) - [Commits](https://github.com/rails/tailwindcss-rails/compare/v2.5.0...v2.7.2) --- updated-dependencies: - dependency-name: tailwindcss-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b44e04ec..5a726648 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -123,11 +123,11 @@ GEM aws-eventstream (~> 1, >= 1.0.2) base64 (0.2.0) bcrypt (3.1.20) - bigdecimal (3.1.7) + bigdecimal (3.1.8) bindex (0.8.1) bootsnap (1.17.0) msgpack (~> 1.2) - builder (3.2.4) + builder (3.3.0) capybara (3.40.0) addressable matrix @@ -139,7 +139,7 @@ GEM xpath (~> 3.2) chartkick (5.0.6) childprocess (5.0.0) - concurrent-ruby (1.2.3) + concurrent-ruby (1.3.4) connection_pool (2.4.1) crack (1.0.0) bigdecimal @@ -162,7 +162,7 @@ GEM diff-lcs (1.5.0) docile (1.4.0) drb (2.2.1) - erubi (1.12.0) + erubi (1.13.0) factory_bot (6.4.6) activesupport (>= 5.0.0) factory_bot_rails (6.4.3) @@ -185,7 +185,7 @@ GEM httparty (0.21.0) mini_mime (>= 1.0.0) multi_xml (>= 0.5.2) - i18n (1.14.4) + i18n (1.14.5) concurrent-ruby (~> 1.0) image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) @@ -200,8 +200,8 @@ GEM railties (>= 6.0) responders (>= 2) io-console (0.7.2) - irb (1.12.0) - rdoc + irb (1.14.0) + rdoc (>= 4.0.0) reline (>= 0.4.2) jbuilder (2.11.5) actionview (>= 5.0.0) @@ -241,7 +241,7 @@ GEM methodz (0.1.8) mini_magick (4.12.0) mini_mime (1.1.5) - minitest (5.22.3) + minitest (5.24.1) msgpack (1.7.2) multi_xml (0.6.0) mustermann (3.0.0) @@ -257,11 +257,11 @@ GEM net-smtp (0.5.0) net-protocol nio4r (2.7.1) - nokogiri (1.16.5-arm64-darwin) + nokogiri (1.16.7-arm64-darwin) racc (~> 1.4) - nokogiri (1.16.5-x86_64-darwin) + nokogiri (1.16.7-x86_64-darwin) racc (~> 1.4) - nokogiri (1.16.5-x86_64-linux) + nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) orm_adapter (0.5.0) parallel (1.24.0) @@ -281,8 +281,8 @@ GEM public_suffix (5.0.5) puma (6.4.2) nio4r (~> 2.0) - racc (1.7.3) - rack (3.0.10) + racc (1.8.1) + rack (3.1.7) rack-cors (2.0.2) rack (>= 2.0.0) rack-protection (4.0.0) @@ -330,14 +330,14 @@ GEM activerecord (>= 6.1.5) activesupport (>= 6.1.5) i18n - rdoc (6.6.3.1) + rdoc (6.7.0) psych (>= 4.0.0) redis (5.2.0) redis-client (>= 0.22.0) redis-client (0.22.1) connection_pool regexp_parser (2.9.1) - reline (0.5.4) + reline (0.5.9) io-console (~> 0.5) responders (3.1.1) actionpack (>= 5.2) @@ -432,14 +432,14 @@ GEM sprockets (>= 3.0.0) stimulus-rails (1.3.3) railties (>= 6.0.0) - stringio (3.1.0) + stringio (3.1.1) stripe (11.2.0) - tailwindcss-rails (2.5.0-arm64-darwin) - railties (>= 6.0.0) - tailwindcss-rails (2.5.0-x86_64-darwin) - railties (>= 6.0.0) - tailwindcss-rails (2.5.0-x86_64-linux) - railties (>= 6.0.0) + tailwindcss-rails (2.7.2-arm64-darwin) + railties (>= 7.0.0) + tailwindcss-rails (2.7.2-x86_64-darwin) + railties (>= 7.0.0) + tailwindcss-rails (2.7.2-x86_64-linux) + railties (>= 7.0.0) thor (1.3.1) tilt (2.3.0) timeout (0.4.1) @@ -468,7 +468,7 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.13) + zeitwerk (2.6.17) PLATFORMS arm64-darwin-22 From ff6b49a5f686332584441b6b1276d8a95000cc18 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sat, 17 Aug 2024 10:47:23 -0400 Subject: [PATCH 03/25] bump active_admin, delayed, webdriver --- Gemfile | 2 +- Gemfile.lock | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 73135eb6..1d9f49d9 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '3.2.2' -gem 'activeadmin', '4.0.0.beta6' +gem 'activeadmin', '4.0.0.beta9' gem 'aws-sdk-s3', require: false gem 'chartkick' gem 'delayed' # delayed_job_active_record rails 7 fork: https://github.com/betterment/delayed diff --git a/Gemfile.lock b/Gemfile.lock index 0333b2b8..ede10f82 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -65,7 +65,7 @@ GEM erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activeadmin (4.0.0.beta6) + activeadmin (4.0.0.beta9) arbre (~> 2.0) csv formtastic (>= 3.1) @@ -150,7 +150,7 @@ GEM debug (1.9.2) irb (~> 1.10) reline (>= 0.3.8) - delayed (0.5.3) + delayed (0.5.5) activerecord (>= 5.2) concurrent-ruby devise (4.9.4) @@ -226,6 +226,7 @@ GEM childprocess (~> 5.0) letter_opener (1.10.0) launchy (>= 2.2, < 4) + logger (1.6.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -241,7 +242,7 @@ GEM methodz (0.1.8) mini_magick (4.12.0) mini_mime (1.1.5) - minitest (5.24.1) + minitest (5.25.1) msgpack (1.7.2) multi_xml (0.6.0) mustermann (3.0.0) @@ -326,7 +327,7 @@ GEM zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.2.1) - ransack (4.1.1) + ransack (4.2.1) activerecord (>= 6.1.5) activesupport (>= 6.1.5) i18n @@ -342,7 +343,8 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.2.6) + rexml (3.3.5) + strscan rspec-core (3.12.2) rspec-support (~> 3.12.0) rspec-expectations (3.12.3) @@ -396,7 +398,9 @@ GEM rubystats (0.4.1) matrix rubyzip (2.3.2) - selenium-webdriver (4.15.0) + selenium-webdriver (4.23.0) + base64 (~> 0.2) + logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -434,6 +438,7 @@ GEM railties (>= 6.0.0) stringio (3.1.1) stripe (11.2.0) + strscan (3.1.0) tailwindcss-rails (2.7.2-arm64-darwin) railties (>= 7.0.0) tailwindcss-rails (2.7.2-x86_64-darwin) @@ -462,7 +467,7 @@ GEM crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) webrick (1.8.1) - websocket (1.2.10) + websocket (1.2.11) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -477,7 +482,7 @@ PLATFORMS x86_64-linux DEPENDENCIES - activeadmin (= 4.0.0.beta6) + activeadmin (= 4.0.0.beta9) aws-sdk-s3 bootsnap capybara From 0c0a6c4ab11354451505be1b9fcc4a979d9badfd Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sat, 17 Aug 2024 10:50:25 -0400 Subject: [PATCH 04/25] bump Rails to 7.2.0 --- Gemfile | 2 +- Gemfile.lock | 137 +++++++++++++++++++++++++-------------------------- 2 files changed, 68 insertions(+), 71 deletions(-) diff --git a/Gemfile b/Gemfile index 1d9f49d9..17b1308a 100644 --- a/Gemfile +++ b/Gemfile @@ -21,7 +21,7 @@ gem 'postmark-rails' gem 'pretender' gem 'puma', '6.4.2' gem 'rack-cors', :require => 'rack/cors' -gem 'rails', '7.1.3.2' +gem 'rails', '7.2.0' gem 'redis' gem 'rename', '1.1.3', git: 'https://github.com/ryanckulp/rename' # remove this gem after use gem 'split', require: 'split/dashboard' diff --git a/Gemfile.lock b/Gemfile.lock index ede10f82..dd4e527e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,51 +16,46 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.1.3.2) - actionpack (= 7.1.3.2) - activesupport (= 7.1.3.2) + actioncable (7.2.0) + actionpack (= 7.2.0) + activesupport (= 7.2.0) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.3.2) - actionpack (= 7.1.3.2) - activejob (= 7.1.3.2) - activerecord (= 7.1.3.2) - activestorage (= 7.1.3.2) - activesupport (= 7.1.3.2) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.1.3.2) - actionpack (= 7.1.3.2) - actionview (= 7.1.3.2) - activejob (= 7.1.3.2) - activesupport (= 7.1.3.2) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailbox (7.2.0) + actionpack (= 7.2.0) + activejob (= 7.2.0) + activerecord (= 7.2.0) + activestorage (= 7.2.0) + activesupport (= 7.2.0) + mail (>= 2.8.0) + actionmailer (7.2.0) + actionpack (= 7.2.0) + actionview (= 7.2.0) + activejob (= 7.2.0) + activesupport (= 7.2.0) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.3.2) - actionview (= 7.1.3.2) - activesupport (= 7.1.3.2) + actionpack (7.2.0) + actionview (= 7.2.0) + activesupport (= 7.2.0) nokogiri (>= 1.8.5) racc - rack (>= 2.2.4) + rack (>= 2.2.4, < 3.2) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.3.2) - actionpack (= 7.1.3.2) - activerecord (= 7.1.3.2) - activestorage (= 7.1.3.2) - activesupport (= 7.1.3.2) + useragent (~> 0.16) + actiontext (7.2.0) + actionpack (= 7.2.0) + activerecord (= 7.2.0) + activestorage (= 7.2.0) + activesupport (= 7.2.0) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.3.2) - activesupport (= 7.1.3.2) + actionview (7.2.0) + activesupport (= 7.2.0) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -74,31 +69,32 @@ GEM kaminari (>= 1.2.1) railties (>= 6.1) ransack (>= 4.0) - activejob (7.1.3.2) - activesupport (= 7.1.3.2) + activejob (7.2.0) + activesupport (= 7.2.0) globalid (>= 0.3.6) - activemodel (7.1.3.2) - activesupport (= 7.1.3.2) - activerecord (7.1.3.2) - activemodel (= 7.1.3.2) - activesupport (= 7.1.3.2) + activemodel (7.2.0) + activesupport (= 7.2.0) + activerecord (7.2.0) + activemodel (= 7.2.0) + activesupport (= 7.2.0) timeout (>= 0.4.0) - activestorage (7.1.3.2) - actionpack (= 7.1.3.2) - activejob (= 7.1.3.2) - activerecord (= 7.1.3.2) - activesupport (= 7.1.3.2) + activestorage (7.2.0) + actionpack (= 7.2.0) + activejob (= 7.2.0) + activerecord (= 7.2.0) + activesupport (= 7.2.0) marcel (~> 1.0) - activesupport (7.1.3.2) + activesupport (7.2.0) base64 bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) arbre (2.0.0) @@ -247,8 +243,7 @@ GEM multi_xml (0.6.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) - mutex_m (0.2.0) - net-imap (0.4.10) + net-imap (0.4.14) date net-protocol net-pop (0.1.2) @@ -257,7 +252,7 @@ GEM timeout net-smtp (0.5.0) net-protocol - nio4r (2.7.1) + nio4r (2.7.3) nokogiri (1.16.7-arm64-darwin) racc (~> 1.4) nokogiri (1.16.7-x86_64-darwin) @@ -296,20 +291,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.1.3.2) - actioncable (= 7.1.3.2) - actionmailbox (= 7.1.3.2) - actionmailer (= 7.1.3.2) - actionpack (= 7.1.3.2) - actiontext (= 7.1.3.2) - actionview (= 7.1.3.2) - activejob (= 7.1.3.2) - activemodel (= 7.1.3.2) - activerecord (= 7.1.3.2) - activestorage (= 7.1.3.2) - activesupport (= 7.1.3.2) + rails (7.2.0) + actioncable (= 7.2.0) + actionmailbox (= 7.2.0) + actionmailer (= 7.2.0) + actionpack (= 7.2.0) + actiontext (= 7.2.0) + actionview (= 7.2.0) + activejob (= 7.2.0) + activemodel (= 7.2.0) + activerecord (= 7.2.0) + activestorage (= 7.2.0) + activesupport (= 7.2.0) bundler (>= 1.15.0) - railties (= 7.1.3.2) + railties (= 7.2.0) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -317,10 +312,10 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.1.3.2) - actionpack (= 7.1.3.2) - activesupport (= 7.1.3.2) - irb + railties (7.2.0) + actionpack (= 7.2.0) + activesupport (= 7.2.0) + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) @@ -398,6 +393,7 @@ GEM rubystats (0.4.1) matrix rubyzip (2.3.2) + securerandom (0.3.1) selenium-webdriver (4.23.0) base64 (~> 0.2) logger (~> 1.4) @@ -455,6 +451,7 @@ GEM tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.5.0) + useragent (0.16.10) warden (1.2.9) rack (>= 2.0.9) web-console (4.2.1) @@ -506,7 +503,7 @@ DEPENDENCIES pretender puma (= 6.4.2) rack-cors - rails (= 7.1.3.2) + rails (= 7.2.0) redis rename (= 1.1.3)! rspec-rails (= 6.0.3) From e3d2c32fc9bdb54b845c61cbb9a92bf81d12794c Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sat, 17 Aug 2024 10:52:05 -0400 Subject: [PATCH 05/25] rubocop --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index fe472254..79e287e8 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -24,7 +24,7 @@ end # admin panels - authenticated :user, ->(user) { user.admin? } do + authenticated :user, lambda(&:admin?) do # insert sidekiq etc mount Split::Dashboard, at: 'admin/split' end From aed9f1aa4d3dbbe4ae81e32ac50ce4e94cee4317 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 09:39:59 +0000 Subject: [PATCH 06/25] Bump chartkick from 5.0.6 to 5.1.0 Bumps [chartkick](https://github.com/ankane/chartkick) from 5.0.6 to 5.1.0. - [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/chartkick/compare/v5.0.6...v5.1.0) --- updated-dependencies: - dependency-name: chartkick dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index dd4e527e..e831a64b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,7 +133,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - chartkick (5.0.6) + chartkick (5.1.0) childprocess (5.0.0) concurrent-ruby (1.3.4) connection_pool (2.4.1) From 58ed3067c95078f37b45f12964b54216ae9858ef Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Thu, 5 Sep 2024 21:59:32 -0400 Subject: [PATCH 07/25] bump Rails, ActiveAdmin, rails defaults, schema version --- Gemfile | 4 +- Gemfile.lock | 122 +++++++++++++++++++++--------------------- config/application.rb | 2 +- db/schema.rb | 2 +- 4 files changed, 65 insertions(+), 65 deletions(-) diff --git a/Gemfile b/Gemfile index 17b1308a..599165fc 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '3.2.2' -gem 'activeadmin', '4.0.0.beta9' +gem 'activeadmin', '4.0.0.beta11' gem 'aws-sdk-s3', require: false gem 'chartkick' gem 'delayed' # delayed_job_active_record rails 7 fork: https://github.com/betterment/delayed @@ -21,7 +21,7 @@ gem 'postmark-rails' gem 'pretender' gem 'puma', '6.4.2' gem 'rack-cors', :require => 'rack/cors' -gem 'rails', '7.2.0' +gem 'rails', '7.2.1' gem 'redis' gem 'rename', '1.1.3', git: 'https://github.com/ryanckulp/rename' # remove this gem after use gem 'split', require: 'split/dashboard' diff --git a/Gemfile.lock b/Gemfile.lock index e831a64b..498c739c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,29 +16,29 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.2.0) - actionpack (= 7.2.0) - activesupport (= 7.2.0) + actioncable (7.2.1) + actionpack (= 7.2.1) + activesupport (= 7.2.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.0) - actionpack (= 7.2.0) - activejob (= 7.2.0) - activerecord (= 7.2.0) - activestorage (= 7.2.0) - activesupport (= 7.2.0) + actionmailbox (7.2.1) + actionpack (= 7.2.1) + activejob (= 7.2.1) + activerecord (= 7.2.1) + activestorage (= 7.2.1) + activesupport (= 7.2.1) mail (>= 2.8.0) - actionmailer (7.2.0) - actionpack (= 7.2.0) - actionview (= 7.2.0) - activejob (= 7.2.0) - activesupport (= 7.2.0) + actionmailer (7.2.1) + actionpack (= 7.2.1) + actionview (= 7.2.1) + activejob (= 7.2.1) + activesupport (= 7.2.1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.0) - actionview (= 7.2.0) - activesupport (= 7.2.0) + actionpack (7.2.1) + actionview (= 7.2.1) + activesupport (= 7.2.1) nokogiri (>= 1.8.5) racc rack (>= 2.2.4, < 3.2) @@ -47,20 +47,20 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.0) - actionpack (= 7.2.0) - activerecord (= 7.2.0) - activestorage (= 7.2.0) - activesupport (= 7.2.0) + actiontext (7.2.1) + actionpack (= 7.2.1) + activerecord (= 7.2.1) + activestorage (= 7.2.1) + activesupport (= 7.2.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.0) - activesupport (= 7.2.0) + actionview (7.2.1) + activesupport (= 7.2.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activeadmin (4.0.0.beta9) + activeadmin (4.0.0.beta11) arbre (~> 2.0) csv formtastic (>= 3.1) @@ -69,22 +69,22 @@ GEM kaminari (>= 1.2.1) railties (>= 6.1) ransack (>= 4.0) - activejob (7.2.0) - activesupport (= 7.2.0) + activejob (7.2.1) + activesupport (= 7.2.1) globalid (>= 0.3.6) - activemodel (7.2.0) - activesupport (= 7.2.0) - activerecord (7.2.0) - activemodel (= 7.2.0) - activesupport (= 7.2.0) + activemodel (7.2.1) + activesupport (= 7.2.1) + activerecord (7.2.1) + activemodel (= 7.2.1) + activesupport (= 7.2.1) timeout (>= 0.4.0) - activestorage (7.2.0) - actionpack (= 7.2.0) - activejob (= 7.2.0) - activerecord (= 7.2.0) - activesupport (= 7.2.0) + activestorage (7.2.1) + actionpack (= 7.2.1) + activejob (= 7.2.1) + activerecord (= 7.2.1) + activesupport (= 7.2.1) marcel (~> 1.0) - activesupport (7.2.0) + activesupport (7.2.1) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -222,7 +222,7 @@ GEM childprocess (~> 5.0) letter_opener (1.10.0) launchy (>= 2.2, < 4) - logger (1.6.0) + logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -243,7 +243,7 @@ GEM multi_xml (0.6.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) - net-imap (0.4.14) + net-imap (0.4.16) date net-protocol net-pop (0.1.2) @@ -291,20 +291,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.2.0) - actioncable (= 7.2.0) - actionmailbox (= 7.2.0) - actionmailer (= 7.2.0) - actionpack (= 7.2.0) - actiontext (= 7.2.0) - actionview (= 7.2.0) - activejob (= 7.2.0) - activemodel (= 7.2.0) - activerecord (= 7.2.0) - activestorage (= 7.2.0) - activesupport (= 7.2.0) + rails (7.2.1) + actioncable (= 7.2.1) + actionmailbox (= 7.2.1) + actionmailer (= 7.2.1) + actionpack (= 7.2.1) + actiontext (= 7.2.1) + actionview (= 7.2.1) + activejob (= 7.2.1) + activemodel (= 7.2.1) + activerecord (= 7.2.1) + activestorage (= 7.2.1) + activesupport (= 7.2.1) bundler (>= 1.15.0) - railties (= 7.2.0) + railties (= 7.2.1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -312,9 +312,9 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.2.0) - actionpack (= 7.2.0) - activesupport (= 7.2.0) + railties (7.2.1) + actionpack (= 7.2.1) + activesupport (= 7.2.1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -333,7 +333,7 @@ GEM redis-client (0.22.1) connection_pool regexp_parser (2.9.1) - reline (0.5.9) + reline (0.5.10) io-console (~> 0.5) responders (3.1.1) actionpack (>= 5.2) @@ -441,7 +441,7 @@ GEM railties (>= 7.0.0) tailwindcss-rails (2.7.2-x86_64-linux) railties (>= 7.0.0) - thor (1.3.1) + thor (1.3.2) tilt (2.3.0) timeout (0.4.1) turbo-rails (2.0.5) @@ -470,7 +470,7 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.17) + zeitwerk (2.6.18) PLATFORMS arm64-darwin-22 @@ -479,7 +479,7 @@ PLATFORMS x86_64-linux DEPENDENCIES - activeadmin (= 4.0.0.beta9) + activeadmin (= 4.0.0.beta11) aws-sdk-s3 bootsnap capybara @@ -503,7 +503,7 @@ DEPENDENCIES pretender puma (= 6.4.2) rack-cors - rails (= 7.2.0) + rails (= 7.2.1) redis rename (= 1.1.3)! rspec-rails (= 6.0.3) diff --git a/config/application.rb b/config/application.rb index a79a0898..4c87a7e6 100644 --- a/config/application.rb +++ b/config/application.rb @@ -9,7 +9,7 @@ module Speedrail class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 7.1 + config.load_defaults 7.2 # Please, add to the `ignore` list any other `lib` subdirectories that do # not contain `.rb` files, or that should not be reloaded or eager loaded. diff --git a/db/schema.rb b/db/schema.rb index 4659cd2d..b8ef1a90 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_04_11_204440) do +ActiveRecord::Schema[7.2].define(version: 2024_04_11_204440) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" From 6f865524acbc3d3dbab4c529c62d1388b6fa65ce Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sat, 21 Sep 2024 10:44:57 -0400 Subject: [PATCH 08/25] Ruby 3.3.5, bump other gems --- .ruby-version | 2 +- Gemfile | 4 +- Gemfile.lock | 168 ++++++++++++++++++++++++-------------------------- 3 files changed, 85 insertions(+), 89 deletions(-) diff --git a/.ruby-version b/.ruby-version index be94e6f5..fa7adc7a 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.2 +3.3.5 diff --git a/Gemfile b/Gemfile index 599165fc..b34c82a7 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,9 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '3.2.2' +ruby '3.3.5' -gem 'activeadmin', '4.0.0.beta11' +gem 'activeadmin', '4.0.0.beta12' gem 'aws-sdk-s3', require: false gem 'chartkick' gem 'delayed' # delayed_job_active_record rails 7 fork: https://github.com/betterment/delayed diff --git a/Gemfile.lock b/Gemfile.lock index 498c739c..4d515b8a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -60,12 +60,12 @@ GEM erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activeadmin (4.0.0.beta11) + activeadmin (4.0.0.beta12) arbre (~> 2.0) csv formtastic (>= 3.1) formtastic_i18n (>= 0.4) - inherited_resources (~> 1.7) + inherited_resources (~> 2.0) kaminari (>= 1.2.1) railties (>= 6.1) ransack (>= 4.0) @@ -95,27 +95,26 @@ GEM minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) - arbre (2.0.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + arbre (2.0.1) activesupport (>= 3.0.0) - ruby2_keywords (>= 0.0.2) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.928.0) - aws-sdk-core (3.196.0) + aws-partitions (1.977.0) + aws-sdk-core (3.207.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) - aws-sigv4 (~> 1.8) + aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.81.0) - aws-sdk-core (~> 3, >= 3.193.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.150.0) - aws-sdk-core (~> 3, >= 3.194.0) + aws-sdk-kms (1.92.0) + aws-sdk-core (~> 3, >= 3.207.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.164.0) + aws-sdk-core (~> 3, >= 3.207.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.8) - aws-sigv4 (1.8.0) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.10.0) aws-eventstream (~> 1, >= 1.0.2) base64 (0.2.0) bcrypt (3.1.20) @@ -134,7 +133,8 @@ GEM regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) chartkick (5.1.0) - childprocess (5.0.0) + childprocess (5.1.0) + logger (~> 1.5) concurrent-ruby (1.3.4) connection_pool (2.4.1) crack (1.0.0) @@ -155,18 +155,20 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.5.0) - docile (1.4.0) + diff-lcs (1.5.1) + docile (1.4.1) drb (2.2.1) erubi (1.13.0) - factory_bot (6.4.6) + factory_bot (6.5.0) activesupport (>= 5.0.0) factory_bot_rails (6.4.3) factory_bot (~> 6.4) railties (>= 5.0.0) - faker (3.3.1) + faker (3.4.2) i18n (>= 1.8.11, < 2) - ffi (1.16.3) + ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86_64-darwin) + ffi (1.17.0-x86_64-linux-gnu) formtastic (5.0.0) actionpack (>= 6.0.0) formtastic_i18n (0.7.0) @@ -177,20 +179,21 @@ GEM has_scope (0.8.2) actionpack (>= 5.2) activesupport (>= 5.2) - hashdiff (1.1.0) - httparty (0.21.0) + hashdiff (1.1.1) + httparty (0.22.0) + csv mini_mime (>= 1.0.0) multi_xml (>= 0.5.2) - i18n (1.14.5) + i18n (1.14.6) concurrent-ruby (~> 1.0) - image_processing (1.12.2) + image_processing (1.13.0) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) importmap-rails (2.0.1) actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - inherited_resources (1.14.0) + inherited_resources (2.0.0) actionpack (>= 6.0) has_scope (>= 0.6) railties (>= 6.0) @@ -199,7 +202,7 @@ GEM irb (1.14.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - jbuilder (2.11.5) + jbuilder (2.13.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) jmespath (1.6.2) @@ -217,7 +220,7 @@ GEM kaminari-core (= 1.2.2) kaminari-core (1.2.2) language_server-protocol (3.17.0.3) - launchy (3.0.0) + launchy (3.0.1) addressable (~> 2.8) childprocess (~> 5.0) letter_opener (1.10.0) @@ -236,12 +239,13 @@ GEM metamagic (3.1.7) rails (>= 3.0.0) methodz (0.1.8) - mini_magick (4.12.0) + mini_magick (4.13.2) mini_mime (1.1.5) minitest (5.25.1) msgpack (1.7.2) - multi_xml (0.6.0) - mustermann (3.0.0) + multi_xml (0.7.1) + bigdecimal (~> 3.1) + mustermann (3.0.3) ruby2_keywords (~> 0.0.1) net-imap (0.4.16) date @@ -260,12 +264,12 @@ GEM nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) orm_adapter (0.5.0) - parallel (1.24.0) - parser (3.3.1.0) + parallel (1.26.3) + parser (3.3.5.0) ast (~> 2.4.1) racc - pg (1.5.6) - postmark (1.24.1) + pg (1.5.8) + postmark (1.25.1) json postmark-rails (0.22.1) actionmailer (>= 3.0.0) @@ -274,7 +278,7 @@ GEM actionpack (>= 6.1) psych (5.1.2) stringio - public_suffix (5.0.5) + public_suffix (6.0.1) puma (6.4.2) nio4r (~> 2.0) racc (1.8.1) @@ -328,26 +332,25 @@ GEM i18n rdoc (6.7.0) psych (>= 4.0.0) - redis (5.2.0) + redis (5.3.0) redis-client (>= 0.22.0) - redis-client (0.22.1) + redis-client (0.22.2) connection_pool - regexp_parser (2.9.1) + regexp_parser (2.9.2) reline (0.5.10) io-console (~> 0.5) responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.5) - strscan - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) + rexml (3.3.7) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.6) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) + rspec-support (~> 3.13.0) rspec-rails (6.0.3) actionpack (>= 6.1) activesupport (>= 6.1) @@ -356,45 +359,40 @@ GEM rspec-expectations (~> 3.12) rspec-mocks (~> 3.12) rspec-support (~> 3.12) - rspec-support (3.12.1) - rubocop (1.63.5) + rspec-support (3.13.1) + rubocop (1.66.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) 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.31.1, < 2.0) + regexp_parser (>= 2.4, < 3.0) + rubocop-ast (>= 1.32.2, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.31.3) + rubocop-ast (1.32.3) parser (>= 3.3.1.0) - rubocop-capybara (2.20.0) + rubocop-capybara (2.21.0) rubocop (~> 1.41) - rubocop-factory_bot (2.24.0) - rubocop (~> 1.33) - rubocop-rails (2.24.1) + rubocop-factory_bot (2.26.1) + rubocop (~> 1.61) + rubocop-rails (2.26.2) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.33.0, < 2.0) + rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (2.28.0) - rubocop (~> 1.40) - rubocop-capybara (~> 2.17) - rubocop-factory_bot (~> 2.22) - rubocop-rspec_rails (~> 2.28) - rubocop-rspec_rails (2.28.2) - rubocop (~> 1.40) + rubocop-rspec (3.0.5) + rubocop (~> 1.61) ruby-progressbar (1.13.0) - ruby-vips (2.2.0) + ruby-vips (2.2.2) ffi (~> 1.12) + logger ruby2_keywords (0.0.5) rubystats (0.4.1) matrix rubyzip (2.3.2) securerandom (0.3.1) - selenium-webdriver (4.23.0) + selenium-webdriver (4.25.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -402,13 +400,13 @@ GEM websocket (~> 1.0) shoulda-callback-matchers (1.1.4) activesupport (>= 3) - shoulda-matchers (6.2.0) + shoulda-matchers (6.4.0) activesupport (>= 5.2.0) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.1) simplecov-tailwindcss (2.2.0) simplecov (~> 0.16) simplecov_json_formatter (0.1.4) @@ -426,31 +424,29 @@ GEM sprockets (4.2.1) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) sprockets (>= 3.0.0) - stimulus-rails (1.3.3) + stimulus-rails (1.3.4) railties (>= 6.0.0) stringio (3.1.1) - stripe (11.2.0) - strscan (3.1.0) - tailwindcss-rails (2.7.2-arm64-darwin) + stripe (12.6.0) + tailwindcss-rails (2.7.5-arm64-darwin) railties (>= 7.0.0) - tailwindcss-rails (2.7.2-x86_64-darwin) + tailwindcss-rails (2.7.5-x86_64-darwin) railties (>= 7.0.0) - tailwindcss-rails (2.7.2-x86_64-linux) + tailwindcss-rails (2.7.5-x86_64-linux) railties (>= 7.0.0) thor (1.3.2) - tilt (2.3.0) + tilt (2.4.0) timeout (0.4.1) - turbo-rails (2.0.5) + turbo-rails (2.0.9) actionpack (>= 6.0.0) - activejob (>= 6.0.0) railties (>= 6.0.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) + unicode-display_width (2.6.0) useragent (0.16.10) warden (1.2.9) rack (>= 2.0.9) @@ -459,7 +455,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.23.0) + webmock (3.23.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -479,7 +475,7 @@ PLATFORMS x86_64-linux DEPENDENCIES - activeadmin (= 4.0.0.beta11) + activeadmin (= 4.0.0.beta12) aws-sdk-s3 bootsnap capybara @@ -528,7 +524,7 @@ DEPENDENCIES webmock RUBY VERSION - ruby 3.2.2p53 + ruby 3.3.5p100 BUNDLED WITH 2.4.18 From 62971529ba35dfccb821064526d2ebe94db0a750 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sat, 21 Sep 2024 10:48:32 -0400 Subject: [PATCH 09/25] better Foreman installer --- bin/dev | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/dev b/bin/dev index 2daf7764..eff72761 100755 --- a/bin/dev +++ b/bin/dev @@ -1,7 +1,6 @@ #!/usr/bin/env bash -if ! command -v foreman &> /dev/null -then +if ! gem list foreman -i --silent; then echo "Installing foreman..." gem install foreman fi From d7accd330e7f8b8925f4918f0988e3540dcffafd Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sat, 21 Sep 2024 10:49:30 -0400 Subject: [PATCH 10/25] prevent logout btn:hover from pre-logging out User via Turbo 8 --- app/views/shared/_header.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/shared/_header.html.erb b/app/views/shared/_header.html.erb index df08cc32..b39ccef7 100644 --- a/app/views/shared/_header.html.erb +++ b/app/views/shared/_header.html.erb @@ -23,7 +23,7 @@ <% if current_user %> <%= link_to 'Dashboard', dashboard_index_path, class: nav_link_classes('dashboard') %> <%= link_to 'Account', account_index_path, class: nav_link_classes('account') %> - <%= link_to 'Logout', logout_path, class: nav_link_classes %> + <%= link_to 'Logout', logout_path, class: nav_link_classes, data: { turbo: false } %> <% else %> <%= link_to 'Contact', "mailto:#{Rails.application.credentials.admin_email}", target: '_blank', class: nav_link_classes('contact') %> <%= link_to 'Login', new_user_session_path, class: nav_link_classes('login') %> From 687386132225e56c4367e86d85a094d7fac9e9b2 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sat, 21 Sep 2024 11:43:33 -0400 Subject: [PATCH 11/25] Drop Daisy because it is incompatible with Importmaps for JS --- app/assets/stylesheets/daisy.css | 6 ------ app/views/layouts/application.html.erb | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 app/assets/stylesheets/daisy.css diff --git a/app/assets/stylesheets/daisy.css b/app/assets/stylesheets/daisy.css deleted file mode 100644 index 1e204ec8..00000000 --- a/app/assets/stylesheets/daisy.css +++ /dev/null @@ -1,6 +0,0 @@ -/* override Daisy UI components here */ - -/* example - maintains default 'btn' styles but changes border to pill style */ -/* .btn { - border-radius: 9999px; -} */ diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d99b6f41..7c370182 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -6,8 +6,7 @@ <%= csrf_meta_tags %> <%= csp_meta_tag %> - - + From 634976f130afa6009292acb6628c7d310bcb1edd Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sun, 22 Sep 2024 14:32:48 -0400 Subject: [PATCH 12/25] stub Stripe keys in generated credentials --- lib/templates/rails/credentials/credentials.yml.tt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/templates/rails/credentials/credentials.yml.tt b/lib/templates/rails/credentials/credentials.yml.tt index a4c0b4a9..bb026922 100644 --- a/lib/templates/rails/credentials/credentials.yml.tt +++ b/lib/templates/rails/credentials/credentials.yml.tt @@ -5,3 +5,7 @@ admin_email: support@localhost.com base_url: http://localhost:3000 company_name: <%= Rails.application.class.module_parent_name %> postmark_api_token: xxxx-qqqq-yyyy-zzzz + +stripe: + api_key: + product_price_id: \ No newline at end of file From d6e5c79b143ed98024d21ec55ad95e714bd5221f Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sun, 22 Sep 2024 14:37:03 -0400 Subject: [PATCH 13/25] include all Stripe creds --- lib/templates/rails/credentials/credentials.yml.tt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/templates/rails/credentials/credentials.yml.tt b/lib/templates/rails/credentials/credentials.yml.tt index bb026922..231d22d8 100644 --- a/lib/templates/rails/credentials/credentials.yml.tt +++ b/lib/templates/rails/credentials/credentials.yml.tt @@ -8,4 +8,5 @@ postmark_api_token: xxxx-qqqq-yyyy-zzzz stripe: api_key: - product_price_id: \ No newline at end of file + product_price_id: + publishable_key: \ No newline at end of file From 838c689853311a5b51cc5a181435b8faf863e835 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sun, 22 Sep 2024 14:59:49 -0400 Subject: [PATCH 14/25] support more platforms for new Ruby --- Gemfile.lock | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile.lock b/Gemfile.lock index 4d515b8a..38d47ea7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -472,6 +472,7 @@ PLATFORMS arm64-darwin-22 arm64-darwin-23 x86_64-darwin-21 + x86_64-darwin-23 x86_64-linux DEPENDENCIES From 056c5f6cea78b7458b73de963c737e45cab15358 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sun, 22 Sep 2024 15:29:03 -0400 Subject: [PATCH 15/25] rename Billing controller function for clarity --- app/controllers/billing_portal_controller.rb | 4 ++-- spec/rails_helper.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/billing_portal_controller.rb b/app/controllers/billing_portal_controller.rb index 62e7cd3b..305aa8f6 100644 --- a/app/controllers/billing_portal_controller.rb +++ b/app/controllers/billing_portal_controller.rb @@ -20,7 +20,7 @@ def create else respond_to do |format| format.html { redirect_to subscribe_index_path } # /account view - format.json { render json: create_subscription } # /subscribe view + format.json { render json: create_checkout } # /subscribe view end end end @@ -28,7 +28,7 @@ def create private # invoked from /subscribe during onboarding - def create_subscription + def create_checkout session = Stripe::Checkout::Session.create({ ui_mode: 'embedded', customer: current_user.stripe_customer_id, diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 0adc0efc..74d3f735 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -76,7 +76,7 @@ # allow(Rails.application.credentials).to receive(:company_name).and_return('Speedrail') allow(Rails.application.credentials).to receive(:base_url).and_return('https://speedrail.com') allow(Rails.application.credentials).to receive(:stripe).and_return(OpenStruct.new(api_key: 'sk_asdf', publishable_key: 'pk_asdf', product_price_id: 'pi_asdf')) - allow_any_instance_of(BillingPortalController).to receive(:create_subscription).and_return({ client_secret: 'qwerty' }.to_json) + allow_any_instance_of(BillingPortalController).to receive(:create_checkout).and_return({ client_secret: 'qwerty' }.to_json) end # You can uncomment this line to turn off ActiveRecord support entirely. From dbe4daf815414d17dd61649d4c32a769bce5da36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 09:38:07 +0000 Subject: [PATCH 16/25] Bump rspec-rails from 6.0.3 to 7.0.1 Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 6.0.3 to 7.0.1. - [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md) - [Commits](https://github.com/rspec/rspec-rails/compare/v6.0.3...v7.0.1) --- updated-dependencies: - dependency-name: rspec-rails dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index b34c82a7..da62592d 100644 --- a/Gemfile +++ b/Gemfile @@ -55,7 +55,7 @@ group :test do gem 'capybara' gem 'factory_bot_rails' gem 'faker' - gem 'rspec-rails', '6.0.3' + gem 'rspec-rails', '7.0.1' gem 'selenium-webdriver' gem 'shoulda-callback-matchers' gem 'shoulda-matchers' diff --git a/Gemfile.lock b/Gemfile.lock index 38d47ea7..52e53c46 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -351,14 +351,14 @@ GEM rspec-mocks (3.13.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (6.0.3) - 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-rails (7.0.1) + actionpack (>= 7.0) + activesupport (>= 7.0) + railties (>= 7.0) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) rspec-support (3.13.1) rubocop (1.66.1) json (~> 2.3) @@ -503,7 +503,7 @@ DEPENDENCIES rails (= 7.2.1) redis rename (= 1.1.3)! - rspec-rails (= 6.0.3) + rspec-rails (= 7.0.1) rubocop rubocop-capybara rubocop-factory_bot From cddaf37a74de9156c67a6fa142caf599b4f97578 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sun, 29 Sep 2024 13:05:38 -0400 Subject: [PATCH 17/25] slightly better Stripe subscription sync cron --- lib/tasks/scheduler.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/scheduler.rake b/lib/tasks/scheduler.rake index f643383d..ae65ba6c 100644 --- a/lib/tasks/scheduler.rake +++ b/lib/tasks/scheduler.rake @@ -23,6 +23,6 @@ end # task :sync_with_stripe => :environment do # User.subscribed.each do |user| # subscription = Stripe::Subscription.retrieve(user.stripe_subscription_id) -# user.update(paying_customer: false) unless ['trialing', 'active', 'past_due'].include?(subscription.status) +# user.update(paying_customer: false) unless ['trialing', 'active', 'past_due'].include?(subscription&.status) # end # end From 8de868c2e5d52a322f30689484bbd0afa8f065b2 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Sun, 29 Sep 2024 13:06:05 -0400 Subject: [PATCH 18/25] drop MIT license when setting up a new private app --- LICENSE | 2 +- bin/speedrail | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index e946fe6a..8d51bbf0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Ryan Kulp +Copyright (c) 2024 Ryan Kulp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/bin/speedrail b/bin/speedrail index bdde5349..f33f284e 100755 --- a/bin/speedrail +++ b/bin/speedrail @@ -25,6 +25,9 @@ FileUtils.chdir APP_ROOT do system! "cd ../#{new_app_name}" system! "bin/setup" + puts "== Dropping OSS License ==" + system! "rm LICENSE" + puts "== Initializing new Git Repository ==" system! "rm -rf .git && git init && git add . && git commit -m 'first commit'" From c346db934956ff850085bff444b3c51d4b3c38e3 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Mon, 21 Oct 2024 06:48:52 -0400 Subject: [PATCH 19/25] rails 7.1 -> 7.2 --- Gemfile.lock | 10 +-- bin/rubocop | 8 +++ config/environments/development.rb | 3 + config/environments/production.rb | 13 ++-- config/environments/test.rb | 7 +- config/initializers/assets.rb | 2 +- .../initializers/filter_parameter_logging.rb | 2 +- public/406-unsupported-browser.html | 66 ++++++++++++++++++ public/icon.png | Bin 0 -> 5599 bytes public/icon.svg | 3 + 10 files changed, 102 insertions(+), 12 deletions(-) create mode 100755 bin/rubocop create mode 100644 public/406-unsupported-browser.html create mode 100644 public/icon.png create mode 100644 public/icon.svg diff --git a/Gemfile.lock b/Gemfile.lock index 52e53c46..945d557a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -199,7 +199,7 @@ GEM railties (>= 6.0) responders (>= 2) io-console (0.7.2) - irb (1.14.0) + irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) jbuilder (2.13.0) @@ -247,7 +247,7 @@ GEM bigdecimal (~> 3.1) mustermann (3.0.3) ruby2_keywords (~> 0.0.1) - net-imap (0.4.16) + net-imap (0.5.0) date net-protocol net-pop (0.1.2) @@ -282,7 +282,7 @@ GEM puma (6.4.2) nio4r (~> 2.0) racc (1.8.1) - rack (3.1.7) + rack (3.1.8) rack-cors (2.0.2) rack (>= 2.0.0) rack-protection (4.0.0) @@ -459,14 +459,14 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.8.1) + webrick (1.8.2) websocket (1.2.11) 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.18) + zeitwerk (2.7.1) PLATFORMS arm64-darwin-22 diff --git a/bin/rubocop b/bin/rubocop new file mode 100755 index 00000000..40330c0f --- /dev/null +++ b/bin/rubocop @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +require "rubygems" +require "bundler/setup" + +# explicit rubocop config increases performance slightly while avoiding config confusion. +ARGV.unshift("--config", File.expand_path("../.rubocop.yml", __dir__)) + +load Gem.bin_path("rubocop", "rubocop") diff --git a/config/environments/development.rb b/config/environments/development.rb index 52afb903..eee3e095 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -79,4 +79,7 @@ # Raise error when a before_action's only/except options reference missing actions config.action_controller.raise_on_missing_callback_actions = true + + # Apply autocorrection by RuboCop to files generated by `bin/rails generate`. + # config.generators.apply_rubocop_autocorrect_after_generate! end diff --git a/config/environments/production.rb b/config/environments/production.rb index e4695b74..9d89af0f 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -13,7 +13,7 @@ config.eager_load = true # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false + config.consider_all_requests_local = false config.action_controller.perform_caching = true # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment @@ -51,15 +51,18 @@ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force_ssl = true + # Skip http-to-https redirect for the default health check endpoint. + # config.ssl_options = { redirect: { exclude: ->(request) { request.path == "/up" } } } + # Log to STDOUT by default config.logger = ActiveSupport::Logger.new($stdout) .tap { |logger| logger.formatter = ::Logger::Formatter.new } .then { |logger| ActiveSupport::TaggedLogging.new(logger) } # Prepend all log lines with the following tags. - config.log_tags = [:request_id] + config.log_tags = [ :request_id ] - # Info include generic and useful information about system operation, but avoids logging too much + # "info" includes generic and useful information about system operation, but avoids logging too much # information to avoid inadvertent exposure of personally identifiable information (PII). If you # want to log everything, set the level to "debug". config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") @@ -68,9 +71,11 @@ # config.cache_store = :mem_cache_store # Use a real queuing backend for Active Job (and separate queues per environment). - # config.active_job.queue_adapter = :resque + # config.active_job.queue_adapter = :resque # config.active_job.queue_name_prefix = "speedrail_production" + # Disable caching for Action Mailer templates even if Action Controller + # caching is enabled. config.action_mailer.perform_caching = false # Ignore bad email addresses and do not raise email delivery errors. diff --git a/config/environments/test.rb b/config/environments/test.rb index 0dda9f9f..784a09ba 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -24,7 +24,7 @@ } # Show full error reports and disable caching. - config.consider_all_requests_local = true + config.consider_all_requests_local = true config.action_controller.perform_caching = false config.cache_store = :null_store @@ -44,6 +44,11 @@ # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test + + # Unlike controllers, the mailer instance doesn't have any context about the + # incoming request so you'll need to provide the :host parameter yourself. + config.action_mailer.default_url_options = { host: "www.example.com" } + # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 2eeef966..bd5bcd2b 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -9,4 +9,4 @@ # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in the app/assets # folder are already added. -# Rails.application.config.assets.precompile += %w( admin.js admin.css ) +# Rails.application.config.assets.precompile += %w[ admin.js admin.css ] diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index c2d89e28..c010b83d 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -4,5 +4,5 @@ # Use this to limit dissemination of sensitive information. # See the ActiveSupport::ParameterFilter documentation for supported notations and behaviors. Rails.application.config.filter_parameters += [ - :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn + :passw, :email, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn ] diff --git a/public/406-unsupported-browser.html b/public/406-unsupported-browser.html new file mode 100644 index 00000000..7cf1e168 --- /dev/null +++ b/public/406-unsupported-browser.html @@ -0,0 +1,66 @@ + + + + Your browser is not supported (406) + + + + + + +
+
+

Your browser is not supported.

+

Please upgrade your browser to continue.

+
+
+ + diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f3b5abcbde91cf6d7a6a26e514eb7e30f476f950 GIT binary patch literal 5599 zcmeHL-D}fO6hCR_taXJlzs3}~RuB=Iujyo=i*=1|1FN%E=zNfMTjru|Q<6v{J{U!C zBEE}?j6I3sz>fzN!6}L_BKjcuASk~1;Dg|U_@d{g?V8mM`~#9U+>>*Ezw>c(PjYWA z4(;!cgge6k5E&d$G5`S-0}!Ik>CV(0Y#1}s-v_gAHhja2=W1?nBAte9D2HG<(+)uj z!5=W4u*{VKMw#{V@^NNs4TClr!FAA%ID-*gc{R%CFKEzG<6gm*9s_uy)oMGW*=nJf zw{(Mau|2FHfXIv6C0@Wk5k)F=3jo1srV-C{pl&k&)4_&JjYrnbJiul}d0^NCSh(#7h=F;3{|>EU>h z6U8_p;^wK6mAB(1b92>5-HxJ~V}@3?G`&Qq-TbJ2(&~-HsH6F#8mFaAG(45eT3VPO zM|(Jd<+;UZs;w>0Qw}0>D%{~r{uo_Fl5_Bo3ABWi zWo^j^_T3dxG6J6fH8X)$a^%TJ#PU!=LxF=#Fd9EvKx_x>q<(KY%+y-08?kN9dXjXK z**Q=yt-FTU*13ouhCdqq-0&;Ke{T3sQU9IdzhV9LhQIpq*P{N)+}|Mh+a-VV=x?R} c>%+pvTcMWshj-umO}|qP?%A)*_KlqT3uEqhU;qFB literal 0 HcmV?d00001 diff --git a/public/icon.svg b/public/icon.svg new file mode 100644 index 00000000..78307ccd --- /dev/null +++ b/public/icon.svg @@ -0,0 +1,3 @@ + + + From 50973b74f328affcdd70524d1e21562cda3bf228 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Mon, 21 Oct 2024 07:10:52 -0400 Subject: [PATCH 20/25] rails 7.2 -> 8.0.0beta1 --- Gemfile | 2 +- Gemfile.lock | 206 ++++++++++-------- bin/setup | 10 +- bin/thrust | 5 + config/application.rb | 2 +- config/environments/development.rb | 7 +- config/environments/production.rb | 60 ++--- config/environments/test.rb | 27 +-- config/initializers/assets.rb | 5 - .../initializers/filter_parameter_logging.rb | 2 +- config/puma.rb | 66 +++--- public/400.html | 114 ++++++++++ public/404.html | 179 +++++++++------ public/406-unsupported-browser.html | 178 +++++++++------ public/422.html | 179 +++++++++------ public/500.html | 178 +++++++++------ public/icon.png | Bin 5599 -> 4166 bytes public/icon.svg | 4 +- 18 files changed, 761 insertions(+), 463 deletions(-) create mode 100755 bin/thrust create mode 100644 public/400.html diff --git a/Gemfile b/Gemfile index da62592d..ce9fa891 100644 --- a/Gemfile +++ b/Gemfile @@ -21,7 +21,7 @@ gem 'postmark-rails' gem 'pretender' gem 'puma', '6.4.2' gem 'rack-cors', :require => 'rack/cors' -gem 'rails', '7.2.1' +gem 'rails', '8.0.0.beta1' gem 'redis' gem 'rename', '1.1.3', git: 'https://github.com/ryanckulp/rename' # remove this gem after use gem 'split', require: 'split/dashboard' diff --git a/Gemfile.lock b/Gemfile.lock index 945d557a..1c395494 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,46 +16,45 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.2.1) - actionpack (= 7.2.1) - activesupport (= 7.2.1) + actioncable (8.0.0.beta1) + actionpack (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.1) - actionpack (= 7.2.1) - activejob (= 7.2.1) - activerecord (= 7.2.1) - activestorage (= 7.2.1) - activesupport (= 7.2.1) + actionmailbox (8.0.0.beta1) + actionpack (= 8.0.0.beta1) + activejob (= 8.0.0.beta1) + activerecord (= 8.0.0.beta1) + activestorage (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) mail (>= 2.8.0) - actionmailer (7.2.1) - actionpack (= 7.2.1) - actionview (= 7.2.1) - activejob (= 7.2.1) - activesupport (= 7.2.1) + actionmailer (8.0.0.beta1) + actionpack (= 8.0.0.beta1) + actionview (= 8.0.0.beta1) + activejob (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.1) - actionview (= 7.2.1) - activesupport (= 7.2.1) + actionpack (8.0.0.beta1) + actionview (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) nokogiri (>= 1.8.5) - racc - rack (>= 2.2.4, < 3.2) + rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.1) - actionpack (= 7.2.1) - activerecord (= 7.2.1) - activestorage (= 7.2.1) - activesupport (= 7.2.1) + actiontext (8.0.0.beta1) + actionpack (= 8.0.0.beta1) + activerecord (= 8.0.0.beta1) + activestorage (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.1) - activesupport (= 7.2.1) + actionview (8.0.0.beta1) + activesupport (= 8.0.0.beta1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -69,23 +68,24 @@ GEM kaminari (>= 1.2.1) railties (>= 6.1) ransack (>= 4.0) - activejob (7.2.1) - activesupport (= 7.2.1) + activejob (8.0.0.beta1) + activesupport (= 8.0.0.beta1) globalid (>= 0.3.6) - activemodel (7.2.1) - activesupport (= 7.2.1) - activerecord (7.2.1) - activemodel (= 7.2.1) - activesupport (= 7.2.1) + activemodel (8.0.0.beta1) + activesupport (= 8.0.0.beta1) + activerecord (8.0.0.beta1) + activemodel (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) timeout (>= 0.4.0) - activestorage (7.2.1) - actionpack (= 7.2.1) - activejob (= 7.2.1) - activerecord (= 7.2.1) - activesupport (= 7.2.1) + activestorage (8.0.0.beta1) + actionpack (= 8.0.0.beta1) + activejob (= 8.0.0.beta1) + activerecord (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) marcel (~> 1.0) - activesupport (7.2.1) + activesupport (8.0.0.beta1) base64 + benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) @@ -95,29 +95,31 @@ GEM minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - arbre (2.0.1) + arbre (2.0.2) activesupport (>= 3.0.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.977.0) - aws-sdk-core (3.207.0) + aws-partitions (1.992.0) + aws-sdk-core (3.210.0) aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.651.0) + aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.92.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-kms (1.95.0) + aws-sdk-core (~> 3, >= 3.210.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.164.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-s3 (1.169.0) + aws-sdk-core (~> 3, >= 3.210.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) aws-sigv4 (1.10.0) aws-eventstream (~> 1, >= 1.0.2) base64 (0.2.0) bcrypt (3.1.20) + benchmark (0.3.0) bigdecimal (3.1.8) bindex (0.8.1) bootsnap (1.18.4) @@ -132,7 +134,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - chartkick (5.1.0) + chartkick (5.1.1) childprocess (5.1.0) logger (~> 1.5) concurrent-ruby (1.3.4) @@ -164,18 +166,25 @@ GEM factory_bot_rails (6.4.3) factory_bot (~> 6.4) railties (>= 5.0.0) - faker (3.4.2) + faker (3.5.1) i18n (>= 1.8.11, < 2) + ffi (1.17.0-aarch64-linux-gnu) + ffi (1.17.0-aarch64-linux-musl) + ffi (1.17.0-arm-linux-gnu) + ffi (1.17.0-arm-linux-musl) ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86-linux-gnu) + ffi (1.17.0-x86-linux-musl) ffi (1.17.0-x86_64-darwin) ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.0-x86_64-linux-musl) formtastic (5.0.0) actionpack (>= 6.0.0) formtastic_i18n (0.7.0) globalid (1.2.1) activesupport (>= 6.1) - groupdate (6.4.0) - activesupport (>= 6.1) + groupdate (6.5.1) + activesupport (>= 7) has_scope (0.8.2) actionpack (>= 5.2) activesupport (>= 5.2) @@ -189,11 +198,11 @@ GEM image_processing (1.13.0) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - importmap-rails (2.0.1) + importmap-rails (2.0.3) actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - inherited_resources (2.0.0) + inherited_resources (2.0.1) actionpack (>= 6.0) has_scope (>= 0.6) railties (>= 6.0) @@ -242,7 +251,7 @@ GEM mini_magick (4.13.2) mini_mime (1.1.5) minitest (5.25.1) - msgpack (1.7.2) + msgpack (1.7.3) multi_xml (0.7.1) bigdecimal (~> 3.1) mustermann (3.0.3) @@ -257,8 +266,14 @@ GEM net-smtp (0.5.0) net-protocol nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm-linux) + racc (~> 1.4) nokogiri (1.16.7-arm64-darwin) racc (~> 1.4) + nokogiri (1.16.7-x86-linux) + racc (~> 1.4) nokogiri (1.16.7-x86_64-darwin) racc (~> 1.4) nokogiri (1.16.7-x86_64-linux) @@ -295,20 +310,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.2.1) - actioncable (= 7.2.1) - actionmailbox (= 7.2.1) - actionmailer (= 7.2.1) - actionpack (= 7.2.1) - actiontext (= 7.2.1) - actionview (= 7.2.1) - activejob (= 7.2.1) - activemodel (= 7.2.1) - activerecord (= 7.2.1) - activestorage (= 7.2.1) - activesupport (= 7.2.1) + rails (8.0.0.beta1) + actioncable (= 8.0.0.beta1) + actionmailbox (= 8.0.0.beta1) + actionmailer (= 8.0.0.beta1) + actionpack (= 8.0.0.beta1) + actiontext (= 8.0.0.beta1) + actionview (= 8.0.0.beta1) + activejob (= 8.0.0.beta1) + activemodel (= 8.0.0.beta1) + activerecord (= 8.0.0.beta1) + activestorage (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) bundler (>= 1.15.0) - railties (= 7.2.1) + railties (= 8.0.0.beta1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -316,9 +331,9 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.2.1) - actionpack (= 7.2.1) - activesupport (= 7.2.1) + railties (8.0.0.beta1) + actionpack (= 8.0.0.beta1) + activesupport (= 8.0.0.beta1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -342,13 +357,13 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.7) - rspec-core (3.13.1) + rexml (3.3.8) + rspec-core (3.13.2) rspec-support (~> 3.13.0) rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) + rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-rails (7.0.1) @@ -360,7 +375,7 @@ GEM rspec-mocks (~> 3.13) rspec-support (~> 3.13) rspec-support (3.13.1) - rubocop (1.66.1) + rubocop (1.67.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -381,7 +396,7 @@ GEM rack (>= 1.1) rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (3.0.5) + rubocop-rspec (3.1.0) rubocop (~> 1.61) ruby-progressbar (1.13.0) ruby-vips (2.2.2) @@ -431,22 +446,26 @@ GEM stimulus-rails (1.3.4) railties (>= 6.0.0) stringio (3.1.1) - stripe (12.6.0) - tailwindcss-rails (2.7.5-arm64-darwin) - railties (>= 7.0.0) - tailwindcss-rails (2.7.5-x86_64-darwin) - railties (>= 7.0.0) - tailwindcss-rails (2.7.5-x86_64-linux) + stripe (13.0.1) + tailwindcss-rails (3.0.0) railties (>= 7.0.0) + tailwindcss-ruby + tailwindcss-ruby (3.4.14) + tailwindcss-ruby (3.4.14-aarch64-linux) + tailwindcss-ruby (3.4.14-arm-linux) + tailwindcss-ruby (3.4.14-arm64-darwin) + tailwindcss-ruby (3.4.14-x86_64-darwin) + tailwindcss-ruby (3.4.14-x86_64-linux) thor (1.3.2) tilt (2.4.0) timeout (0.4.1) - turbo-rails (2.0.9) + turbo-rails (2.0.11) actionpack (>= 6.0.0) railties (>= 6.0.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.6.0) + uri (0.13.1) useragent (0.16.10) warden (1.2.9) rack (>= 2.0.9) @@ -455,7 +474,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.23.1) + webmock (3.24.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -469,11 +488,20 @@ GEM zeitwerk (2.7.1) PLATFORMS - arm64-darwin-22 - arm64-darwin-23 - x86_64-darwin-21 - x86_64-darwin-23 + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86-linux + x86-linux-gnu + x86-linux-musl + x86_64-darwin x86_64-linux + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES activeadmin (= 4.0.0.beta12) @@ -500,7 +528,7 @@ DEPENDENCIES pretender puma (= 6.4.2) rack-cors - rails (= 7.2.1) + rails (= 8.0.0.beta1) redis rename (= 1.1.3)! rspec-rails (= 7.0.1) @@ -528,4 +556,4 @@ RUBY VERSION ruby 3.3.5p100 BUNDLED WITH - 2.4.18 + 2.5.16 diff --git a/bin/setup b/bin/setup index 3cd5a9d7..8cb31286 100755 --- a/bin/setup +++ b/bin/setup @@ -14,7 +14,6 @@ FileUtils.chdir APP_ROOT do # Add necessary setup steps to this file. puts "== Installing dependencies ==" - system! "gem install bundler --conservative" system("bundle check") || system!("bundle install") # puts "\n== Copying sample files ==" @@ -28,6 +27,11 @@ FileUtils.chdir APP_ROOT do puts "\n== Removing old logs and tempfiles ==" system! "bin/rails log:clear tmp:clear" - puts "\n== Restarting application server ==" - system! "bin/rails restart" + unless ARGV.include?("--skip-server") + puts "\n== Restarting application server ==" + system! "bin/rails restart" + puts "\n== Starting development server ==" + STDOUT.flush # flush the output before exec(2) so that it displays + exec "bin/dev" + end end diff --git a/bin/thrust b/bin/thrust new file mode 100755 index 00000000..36bde2d8 --- /dev/null +++ b/bin/thrust @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("thruster", "thrust") diff --git a/config/application.rb b/config/application.rb index 4c87a7e6..f72e396d 100644 --- a/config/application.rb +++ b/config/application.rb @@ -9,7 +9,7 @@ module Speedrail class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 7.2 + config.load_defaults 8.0 # Please, add to the `ignore` list any other `lib` subdirectories that do # not contain `.rb` files, or that should not be reloaded or eager loaded. diff --git a/config/environments/development.rb b/config/environments/development.rb index eee3e095..c685191d 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -45,6 +45,7 @@ # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false + # Make template changes take effect immediately. config.action_mailer.perform_caching = false # Print deprecation notices to the Rails logger. @@ -62,12 +63,12 @@ # Highlight code that triggered database queries in logs. config.active_record.verbose_query_logs = true + # Append comments with runtime information tags to SQL queries in logs. + config.active_record.query_log_tags_enabled = true + # Highlight code that enqueued background job in logs. config.active_job.verbose_enqueue_logs = true - # Suppress logger output for asset requests. - config.assets.quiet = true - # Raises error for missing translations. # config.i18n.raise_on_missing_translations = true diff --git a/config/environments/production.rb b/config/environments/production.rb index 9d89af0f..46eda23e 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -6,47 +6,26 @@ # Code is not reloaded between requests. config.enable_reloading = false - # Eager load code on boot. This eager loads most of Rails and - # your application in memory, allowing both threaded web servers - # and those relying on copy on write to perform better. - # Rake tasks automatically ignore this option for performance. + # Eager load code on boot for better performance and memory savings (ignored by Rake tasks). config.eager_load = true - # Full error reports are disabled and caching is turned on. + # Full error reports are disabled. config.consider_all_requests_local = false - config.action_controller.perform_caching = true - - # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment - # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files). - # config.require_master_key = true - - # Enable static file serving from the `/public` folder (turn off if using NGINX/Apache for it). - config.public_file_server.enabled = true - # Compress CSS using a preprocessor. - # config.assets.css_compressor = :sass + # Turn on fragment caching in view templates. + config.action_controller.perform_caching = true - # Do not fallback to assets pipeline if a precompiled asset is missed. - config.assets.compile = false + # Cache assets for far-future expiry since they are all digest stamped. + config.public_file_server.headers = { "cache-control" => "public, max-age=#{1.year.to_i}" } # Enable serving of images, stylesheets, and JavaScripts from an asset server. # config.asset_host = "http://assets.example.com" - # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache - # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX - # Store uploaded files on the local file system (see config/storage.yml for options). config.active_storage.service = :local - # Mount Action Cable outside main process or domain. - # config.action_cable.mount_path = nil - # config.action_cable.url = "wss://example.com/cable" - # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] - # Assume all access to the app is happening through a SSL-terminating reverse proxy. - # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies. - # config.assume_ssl = true + config.assume_ssl = true # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force_ssl = true @@ -54,30 +33,27 @@ # Skip http-to-https redirect for the default health check endpoint. # config.ssl_options = { redirect: { exclude: ->(request) { request.path == "/up" } } } - # Log to STDOUT by default + # Log to STDOUT with the current request id as a default log tag. config.logger = ActiveSupport::Logger.new($stdout) .tap { |logger| logger.formatter = ::Logger::Formatter.new } .then { |logger| ActiveSupport::TaggedLogging.new(logger) } # Prepend all log lines with the following tags. - config.log_tags = [ :request_id ] + config.logger = ActiveSupport::TaggedLogging.logger(STDOUT) - # "info" includes generic and useful information about system operation, but avoids logging too much - # information to avoid inadvertent exposure of personally identifiable information (PII). If you - # want to log everything, set the level to "debug". + # Change to "debug" to log everything (including potentially personally-identifiable information!) config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") - # Use a different cache store in production. + # Replace the default in-process memory cache store with a durable alternative. # config.cache_store = :mem_cache_store - # Use a real queuing backend for Active Job (and separate queues per environment). + # Prevent health checks from clogging up the logs. + config.silence_healthcheck_path = "/up" + + # Replace the default in-process and non-durable queuing backend for Active Job. # config.active_job.queue_adapter = :resque # config.active_job.queue_name_prefix = "speedrail_production" - # Disable caching for Action Mailer templates even if Action Controller - # caching is enabled. - config.action_mailer.perform_caching = false - # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. # config.action_mailer.raise_delivery_errors = false @@ -86,12 +62,12 @@ # the I18n.default_locale when a translation cannot be found). config.i18n.fallbacks = true - # Don't log any deprecations. - config.active_support.report_deprecations = false - # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false + # Only use :id for inspections in production. + config.active_record.attributes_for_inspect = [ :id ] + # Enable DNS rebinding protection and other `Host` header attacks. # config.hosts = [ # "example.com", # Allow requests from example.com diff --git a/config/environments/test.rb b/config/environments/test.rb index 784a09ba..fcb079e5 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -19,16 +19,13 @@ # Configure public file server for tests with Cache-Control for performance. config.public_file_server.enabled = true - config.public_file_server.headers = { - "Cache-Control" => "public, max-age=#{1.hour.to_i}" - } + config.public_file_server.headers = { "cache-control" => "public, max-age=3600" } - # Show full error reports and disable caching. - config.consider_all_requests_local = true - config.action_controller.perform_caching = false + # Show full error reports. + config.consider_all_requests_local = true config.cache_store = :null_store - # Raise exceptions instead of rendering exception templates. + # Render exception templates for rescuable exceptions and raise for other exceptions. config.action_dispatch.show_exceptions = :rescuable # Disable request forgery protection in test environment. @@ -37,33 +34,23 @@ # Store uploaded files on the local file system in a temporary directory. config.active_storage.service = :test - config.action_mailer.perform_caching = false - # Tell Action Mailer not to deliver emails to the real world. # The :test delivery method accumulates sent emails in the # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test - - # Unlike controllers, the mailer instance doesn't have any context about the - # incoming request so you'll need to provide the :host parameter yourself. - config.action_mailer.default_url_options = { host: "www.example.com" } + # Set host to be used by links generated in mailer templates. + config.action_mailer.default_url_options = { host: "example.com" } # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr - # Raise exceptions for disallowed deprecations. - config.active_support.disallowed_deprecation = :raise - - # Tell Active Support which deprecation messages to disallow. - config.active_support.disallowed_deprecation_warnings = [] - # Raises error for missing translations. # config.i18n.raise_on_missing_translations = true # Annotate rendered view with file names. # config.action_view.annotate_rendered_view_with_filenames = true - # Raise error when a before_action's only/except options reference missing actions + # Raise error when a before_action's only/except options reference missing actions. config.action_controller.raise_on_missing_callback_actions = true end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index bd5bcd2b..48732442 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -5,8 +5,3 @@ # Add additional assets to the asset load path. # Rails.application.config.assets.paths << Emoji.images_path - -# Precompile additional assets. -# application.js, application.css, and all non-JS/CSS in the app/assets -# folder are already added. -# Rails.application.config.assets.precompile += %w[ admin.js admin.css ] diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index c010b83d..c0b717f7 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -4,5 +4,5 @@ # Use this to limit dissemination of sensitive information. # See the ActiveSupport::ParameterFilter documentation for supported notations and behaviors. Rails.application.config.filter_parameters += [ - :passw, :email, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn + :passw, :email, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn, :cvv, :cvc ] diff --git a/config/puma.rb b/config/puma.rb index 94561f6c..3ddce9ff 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,46 +1,44 @@ -# Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers: a minimum and maximum. -# Any libraries that use thread pools should be configured to match -# the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum; this matches the default thread size of Active Record. +# This configuration file will be evaluated by Puma. The top-level methods that +# are invoked here are part of Puma's configuration DSL. For more information +# about methods provided by the DSL, see https://puma.io/puma/Puma/DSL.html. # -max_threads_count = ENV.fetch("RAILS_MAX_THREADS", 5) -min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } -threads min_threads_count, max_threads_count - -# Specifies the `worker_timeout` threshold that Puma will use to wait before -# terminating a worker in development environments. +# Puma starts a configurable number of processes (workers) and each process +# serves each request in a thread from an internal thread pool. # -worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" - -# Specifies the `port` that Puma will listen on to receive requests; default is 3000. +# You can control the number of workers using ENV["WEB_CONCURRENCY"]. You +# should only set this value when you want to run 2 or more workers. The +# default is already 1. # -port ENV.fetch("PORT", 3000) - -# Specifies the `environment` that Puma will run in. +# The ideal number of threads per worker depends both on how much time the +# application spends waiting for IO operations and on how much you wish to +# prioritize throughput over latency. # -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`. -# Workers do not work on JRuby or Windows (both of which do not support -# processes). +# As a rule of thumb, increasing the number of threads will increase how much +# traffic a given process can handle (throughput), but due to CRuby's +# Global VM Lock (GVL) it has diminishing returns and will degrade the +# response time (latency) of the application. # -# workers ENV.fetch("WEB_CONCURRENCY") { 2 } - -# Use the `preload_app!` method when specifying a `workers` number. -# This directive tells Puma to first boot the application and load code -# before forking the application. This takes advantage of Copy On Write -# process behavior so workers use less memory. +# The default is set to 3 threads as it's deemed a decent compromise between +# throughput and latency for the average Rails application. # -# preload_app! +# Any libraries that use a connection pool or another resource pool should +# be configured to provide at least as many connections as the number of +# threads. This includes Active Record's `pool` parameter in `database.yml`. +threads_count = ENV.fetch("RAILS_MAX_THREADS", 3) +threads threads_count, threads_count + +# Specifies the `port` that Puma will listen on to receive requests; default is 3000. +port ENV.fetch("PORT", 3000) # Allow puma to be restarted by `bin/rails restart` command. plugin :tmp_restart +# Run the Solid Queue supervisor inside of Puma for single-server deployments +plugin :solid_queue if ENV["SOLID_QUEUE_IN_PUMA"] + +# Specify the PID file. Defaults to tmp/pids/server.pid in development. +# In other environments, only set the PID file if requested. +pidfile ENV["PIDFILE"] if ENV["PIDFILE"] + # Allow tailwindcss:watch to integrate w/ "rails server", removing a separate process plugin :tailwindcss if ENV.fetch("RAILS_ENV", "development") == "development" diff --git a/public/400.html b/public/400.html new file mode 100644 index 00000000..282dbc8c --- /dev/null +++ b/public/400.html @@ -0,0 +1,114 @@ + + + + + + + The server cannot process the request due to a client error (400 Bad Request) + + + + + + + + + + + + + +
+
+ +
+
+

The server cannot process the request due to a client error. Please check the request and try again. If you’re the application owner check the logs for more information.

+
+
+ + + + diff --git a/public/404.html b/public/404.html index 2be3af26..c0670bc8 100644 --- a/public/404.html +++ b/public/404.html @@ -1,67 +1,114 @@ - - - - The page you were looking for doesn't exist (404) - - - - - - -
-
-

The page you were looking for doesn't exist.

-

You may have mistyped the address or the page may have moved.

-
-

If you are the application owner check the logs for more information.

-
- + + + + + + + The page you were looking for doesn’t exist (404 Not found) + + + + + + + + + + + + + +
+
+ +
+
+

The page you were looking for doesn’t exist. You may have mistyped the address or the page may have moved. If you’re the application owner check the logs for more information.

+
+
+ + + diff --git a/public/406-unsupported-browser.html b/public/406-unsupported-browser.html index 7cf1e168..9532a9cc 100644 --- a/public/406-unsupported-browser.html +++ b/public/406-unsupported-browser.html @@ -1,66 +1,114 @@ - - - - Your browser is not supported (406) - - - - - - -
-
-

Your browser is not supported.

-

Please upgrade your browser to continue.

-
-
- + + + + + + + Your browser is not supported (406 Not Acceptable) + + + + + + + + + + + + + +
+
+ +
+
+

Your browser is not supported.
Please upgrade your browser to continue.

+
+
+ + + diff --git a/public/422.html b/public/422.html index c08eac0d..8bcf0601 100644 --- a/public/422.html +++ b/public/422.html @@ -1,67 +1,114 @@ - - - - The change you wanted was rejected (422) - - - - - - -
-
-

The change you wanted was rejected.

-

Maybe you tried to change something you didn't have access to.

-
-

If you are the application owner check the logs for more information.

-
- + + + + + + + The change you wanted was rejected (422 Unprocessable Entity) + + + + + + + + + + + + + +
+
+ +
+
+

The change you wanted was rejected. Maybe you tried to change something you didn’t have access to. If you’re the application owner check the logs for more information.

+
+
+ + + diff --git a/public/500.html b/public/500.html index 78a030af..d77718c3 100644 --- a/public/500.html +++ b/public/500.html @@ -1,66 +1,114 @@ - - - - We're sorry, but something went wrong (500) - - - - - - -
-
-

We're sorry, but something went wrong.

-
-

If you are the application owner check the logs for more information.

-
- + + + + + + + We’re sorry, but something went wrong (500 Internal Server Error) + + + + + + + + + + + + + +
+
+ +
+
+

We’re sorry, but something went wrong.
If you’re the application owner check the logs for more information.

+
+
+ + + diff --git a/public/icon.png b/public/icon.png index f3b5abcbde91cf6d7a6a26e514eb7e30f476f950..c4c9dbfbbd2f7c1421ffd5727188146213abbcef 100644 GIT binary patch literal 4166 zcmd6qU;WFw?|v@m)Sk^&NvB8tcujdV-r1b=i(NJxn&7{KTb zX$3(M+3TP2o^#KAo{#tIjl&t~(8D-k004kqPglzn0HFG(Q~(I*AKsD#M*g7!XK0T7 zN6P7j>HcT8rZgKl$v!xr806dyN19Bd4C0x_R*I-a?#zsTvb_89cyhuC&T**i|Rc zq5b8M;+{8KvoJ~uj9`u~d_f6`V&3+&ZX9x5pc8s)d175;@pjm(?dapmBcm0&vl9+W zx1ZD2o^nuyUHWj|^A8r>lUorO`wFF;>9XL-Jy!P}UXC{(z!FO%SH~8k`#|9;Q|eue zqWL0^Bp(fg_+Pkm!fDKRSY;+^@BF?AJE zCUWpXPst~hi_~u)SzYBDZroR+Z4xeHIlm_3Yc_9nZ(o_gg!jDgVa=E}Y8uDgem9`b zf=mfJ_@(BXSkW53B)F2s!&?_R4ptb1fYXlF++@vPhd=marQgEGRZS@B4g1Mu?euknL= z67P~tZ?*>-Hmi7GwlisNHHJDku-dSm7g@!=a}9cSL6Pa^w^2?&?$Oi8ibrr>w)xqx zOH_EMU@m05)9kuNR>>4@H%|){U$^yvVQ(YgOlh;5oU_-vivG-p4=LrN-k7D?*?u1u zsWly%tfAzKd6Fb=`eU2un_uaTXmcT#tlOL+aRS=kZZf}A7qT8lvcTx~7j` z*b>=z)mwg7%B2_!D0!1IZ?Nq{^Y$uI4Qx*6T!E2Col&2{k?ImCO=dD~A&9f9diXy^$x{6CwkBimn|1E09 zAMSezYtiL?O6hS37KpvDM?22&d{l)7h-!F)C-d3j8Z`c@($?mfd{R82)H>Qe`h{~G z!I}(2j(|49{LR?w4Jspl_i!(4T{31|dqCOpI52r5NhxYV+cDAu(xp*4iqZ2e-$YP= zoFOPmm|u*7C?S{Fp43y+V;>~@FFR76bCl@pTtyB93vNWy5yf;HKr8^0d7&GVIslYm zo3Tgt@M!`8B6IW&lK{Xk>%zp41G%`(DR&^u z5^pwD4>E6-w<8Kl2DzJ%a@~QDE$(e87lNhy?-Qgep!$b?5f7+&EM7$e>|WrX+=zCb z=!f5P>MxFyy;mIRxjc(H*}mceXw5a*IpC0PEYJ8Y3{JdoIW)@t97{wcUB@u+$FCCO z;s2Qe(d~oJC^`m$7DE-dsha`glrtu&v&93IZadvl_yjp!c89>zo;Krk+d&DEG4?x$ zufC1n+c1XD7dolX1q|7}uelR$`pT0Z)1jun<39$Sn2V5g&|(j~Z!wOddfYiZo7)A< z!dK`aBHOOk+-E_xbWCA3VR-+o$i5eO9`rMI#p_0xQ}rjEpGW;U!&&PKnivOcG(|m9 z!C8?WC6nCXw25WVa*eew)zQ=h45k8jSIPbq&?VE{oG%?4>9rwEeB4&qe#?-y_es4c|7ufw%+H5EY#oCgv!Lzv291#-oNlX~X+Jl5(riC~r z=0M|wMOP)Tt8@hNg&%V@Z9@J|Q#K*hE>sr6@oguas9&6^-=~$*2Gs%h#GF@h)i=Im z^iKk~ipWJg1VrvKS;_2lgs3n1zvNvxb27nGM=NXE!D4C!U`f*K2B@^^&ij9y}DTLB*FI zEnBL6y{jc?JqXWbkIZd7I16hA>(f9T!iwbIxJj~bKPfrO;>%*5nk&Lf?G@c2wvGrY&41$W{7HM9+b@&XY@>NZM5s|EK_Dp zQX60CBuantx>|d#DsaZ*8MW(we|#KTYZ=vNa#d*DJQe6hr~J6{_rI#?wi@s|&O}FR zG$kfPxheXh1?IZ{bDT-CWB4FTvO-k5scW^mi8?iY5Q`f8JcnnCxiy@m@D-%lO;y0pTLhh6i6l@x52j=#^$5_U^os}OFg zzdHbo(QI`%9#o*r8GCW~T3UdV`szO#~)^&X_(VW>o~umY9-ns9-V4lf~j z`QBD~pJ4a#b`*6bJ^3RS5y?RAgF7K5$ll97Y8#WZduZ`j?IEY~H(s^doZg>7-tk*t z4_QE1%%bb^p~4F5SB$t2i1>DBG1cIo;2(xTaj*Y~hlM{tSDHojL-QPg%Mo%6^7FrpB*{ z4G0@T{-77Por4DCMF zB_5Y~Phv%EQ64W8^GS6h?x6xh;w2{z3$rhC;m+;uD&pR74j+i22P5DS-tE8ABvH(U~indEbBUTAAAXfHZg5QpB@TgV9eI<)JrAkOI z8!TSOgfAJiWAXeM&vR4Glh;VxH}WG&V$bVb`a`g}GSpwggti*&)taV1@Ak|{WrV|5 zmNYx)Ans=S{c52qv@+jmGQ&vd6>6yX6IKq9O$3r&0xUTdZ!m1!irzn`SY+F23Rl6# zFRxws&gV-kM1NX(3(gnKpGi0Q)Dxi~#?nyzOR9!en;Ij>YJZVFAL*=R%7y%Mz9hU% zs>+ZB?qRmZ)nISx7wxY)y#cd$iaC~{k0avD>BjyF1q^mNQ1QcwsxiTySe<6C&cC6P zE`vwO9^k-d`9hZ!+r@Jnr+MF*2;2l8WjZ}DrwDUHzSF{WoG zucbSWguA!3KgB3MU%HH`R;XqVv0CcaGq?+;v_A5A2kpmk5V%qZE3yzQ7R5XWhq=eR zyUezH=@V)y>L9T-M-?tW(PQYTRBKZSVb_!$^H-Pn%ea;!vS_?M<~Tm>_rWIW43sPW z=!lY&fWc1g7+r?R)0p8(%zp&vl+FK4HRkns%BW+Up&wK8!lQ2~bja|9bD12WrKn#M zK)Yl9*8$SI7MAwSK$%)dMd>o+1UD<2&aQMhyjS5R{-vV+M;Q4bzl~Z~=4HFj_#2V9 zB)Gfzx3ncy@uzx?yzi}6>d%-?WE}h7v*w)Jr_gBl!2P&F3DX>j_1#--yjpL%<;JMR z*b70Gr)MMIBWDo~#<5F^Q0$VKI;SBIRneuR7)yVsN~A9I@gZTXe)E?iVII+X5h0~H zx^c(fP&4>!*q>fb6dAOC?MI>Cz3kld#J*;uik+Ps49cwm1B4 zZc1|ZxYyTv;{Z!?qS=D)sgRKx^1AYf%;y_V&VgZglfU>d+Ufk5&LV$sKv}Hoj+s; xK3FZRYdhbXT_@RW*ff3@`D1#ps#~H)p+y&j#(J|vk^lW{fF9OJt5(B-_&*Xgn9~3N literal 5599 zcmeHL-D}fO6hCR_taXJlzs3}~RuB=Iujyo=i*=1|1FN%E=zNfMTjru|Q<6v{J{U!C zBEE}?j6I3sz>fzN!6}L_BKjcuASk~1;Dg|U_@d{g?V8mM`~#9U+>>*Ezw>c(PjYWA z4(;!cgge6k5E&d$G5`S-0}!Ik>CV(0Y#1}s-v_gAHhja2=W1?nBAte9D2HG<(+)uj z!5=W4u*{VKMw#{V@^NNs4TClr!FAA%ID-*gc{R%CFKEzG<6gm*9s_uy)oMGW*=nJf zw{(Mau|2FHfXIv6C0@Wk5k)F=3jo1srV-C{pl&k&)4_&JjYrnbJiul}d0^NCSh(#7h=F;3{|>EU>h z6U8_p;^wK6mAB(1b92>5-HxJ~V}@3?G`&Qq-TbJ2(&~-HsH6F#8mFaAG(45eT3VPO zM|(Jd<+;UZs;w>0Qw}0>D%{~r{uo_Fl5_Bo3ABWi zWo^j^_T3dxG6J6fH8X)$a^%TJ#PU!=LxF=#Fd9EvKx_x>q<(KY%+y-08?kN9dXjXK z**Q=yt-FTU*13ouhCdqq-0&;Ke{T3sQU9IdzhV9LhQIpq*P{N)+}|Mh+a-VV=x?R} c>%+pvTcMWshj-umO}|qP?%A)*_KlqT3uEqhU;qFB diff --git a/public/icon.svg b/public/icon.svg index 78307ccd..04b34bf8 100644 --- a/public/icon.svg +++ b/public/icon.svg @@ -1,3 +1,3 @@ - - + + From 064cfe9577d26bd9f0bcede85112be57694c6244 Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Mon, 21 Oct 2024 07:22:18 -0400 Subject: [PATCH 21/25] fork & fix Delayed gem which uses proxyobject --- Gemfile | 4 +- Gemfile.lock | 121 +++++++++++++++++++++++++++------------------------ 2 files changed, 65 insertions(+), 60 deletions(-) diff --git a/Gemfile b/Gemfile index ce9fa891..9b104e23 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ ruby '3.3.5' gem 'activeadmin', '4.0.0.beta12' gem 'aws-sdk-s3', require: false gem 'chartkick' -gem 'delayed' # delayed_job_active_record rails 7 fork: https://github.com/betterment/delayed +gem 'delayed', github: 'ryanckulp/delayed' # delayed_job_active_record rails 7 fork: https://github.com/betterment/delayed gem 'devise' gem 'groupdate' # used by Chartkick gem 'honeypot-captcha', github: 'founderhacker/honeypot-captcha' # prevent unauthenticated form spam @@ -21,7 +21,7 @@ gem 'postmark-rails' gem 'pretender' gem 'puma', '6.4.2' gem 'rack-cors', :require => 'rack/cors' -gem 'rails', '8.0.0.beta1' +gem 'rails', '8.0.0.rc1' gem 'redis' gem 'rename', '1.1.3', git: 'https://github.com/ryanckulp/rename' # remove this gem after use gem 'split', require: 'split/dashboard' diff --git a/Gemfile.lock b/Gemfile.lock index 1c395494..581d8a6c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,6 +4,14 @@ GIT specs: honeypot-captcha (1.0.2) +GIT + remote: https://github.com/ryanckulp/delayed.git + revision: 2051744a7cd33d0ad0afa441fe2861c90bd0949e + specs: + delayed (0.5.5) + activerecord (>= 5.2) + concurrent-ruby + GIT remote: https://github.com/ryanckulp/rename revision: c747f30cbd85f72d8c57ab9e0d1b1797ed444ccc @@ -16,29 +24,29 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (8.0.0.beta1) - actionpack (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + actioncable (8.0.0.rc1) + actionpack (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (8.0.0.beta1) - actionpack (= 8.0.0.beta1) - activejob (= 8.0.0.beta1) - activerecord (= 8.0.0.beta1) - activestorage (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + actionmailbox (8.0.0.rc1) + actionpack (= 8.0.0.rc1) + activejob (= 8.0.0.rc1) + activerecord (= 8.0.0.rc1) + activestorage (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) mail (>= 2.8.0) - actionmailer (8.0.0.beta1) - actionpack (= 8.0.0.beta1) - actionview (= 8.0.0.beta1) - activejob (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + actionmailer (8.0.0.rc1) + actionpack (= 8.0.0.rc1) + actionview (= 8.0.0.rc1) + activejob (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.0.0.beta1) - actionview (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + actionpack (8.0.0.rc1) + actionview (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -46,15 +54,15 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (8.0.0.beta1) - actionpack (= 8.0.0.beta1) - activerecord (= 8.0.0.beta1) - activestorage (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + actiontext (8.0.0.rc1) + actionpack (= 8.0.0.rc1) + activerecord (= 8.0.0.rc1) + activestorage (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (8.0.0.beta1) - activesupport (= 8.0.0.beta1) + actionview (8.0.0.rc1) + activesupport (= 8.0.0.rc1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -68,22 +76,22 @@ GEM kaminari (>= 1.2.1) railties (>= 6.1) ransack (>= 4.0) - activejob (8.0.0.beta1) - activesupport (= 8.0.0.beta1) + activejob (8.0.0.rc1) + activesupport (= 8.0.0.rc1) globalid (>= 0.3.6) - activemodel (8.0.0.beta1) - activesupport (= 8.0.0.beta1) - activerecord (8.0.0.beta1) - activemodel (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + activemodel (8.0.0.rc1) + activesupport (= 8.0.0.rc1) + activerecord (8.0.0.rc1) + activemodel (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) timeout (>= 0.4.0) - activestorage (8.0.0.beta1) - actionpack (= 8.0.0.beta1) - activejob (= 8.0.0.beta1) - activerecord (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + activestorage (8.0.0.rc1) + actionpack (= 8.0.0.rc1) + activejob (= 8.0.0.rc1) + activerecord (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) marcel (~> 1.0) - activesupport (8.0.0.beta1) + activesupport (8.0.0.rc1) base64 benchmark (>= 0.3) bigdecimal @@ -148,9 +156,6 @@ GEM debug (1.9.2) irb (~> 1.10) reline (>= 0.3.8) - delayed (0.5.5) - activerecord (>= 5.2) - concurrent-ruby devise (4.9.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -310,20 +315,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (8.0.0.beta1) - actioncable (= 8.0.0.beta1) - actionmailbox (= 8.0.0.beta1) - actionmailer (= 8.0.0.beta1) - actionpack (= 8.0.0.beta1) - actiontext (= 8.0.0.beta1) - actionview (= 8.0.0.beta1) - activejob (= 8.0.0.beta1) - activemodel (= 8.0.0.beta1) - activerecord (= 8.0.0.beta1) - activestorage (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + rails (8.0.0.rc1) + actioncable (= 8.0.0.rc1) + actionmailbox (= 8.0.0.rc1) + actionmailer (= 8.0.0.rc1) + actionpack (= 8.0.0.rc1) + actiontext (= 8.0.0.rc1) + actionview (= 8.0.0.rc1) + activejob (= 8.0.0.rc1) + activemodel (= 8.0.0.rc1) + activerecord (= 8.0.0.rc1) + activestorage (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) bundler (>= 1.15.0) - railties (= 8.0.0.beta1) + railties (= 8.0.0.rc1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -331,9 +336,9 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (8.0.0.beta1) - actionpack (= 8.0.0.beta1) - activesupport (= 8.0.0.beta1) + railties (8.0.0.rc1) + actionpack (= 8.0.0.rc1) + activesupport (= 8.0.0.rc1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -510,7 +515,7 @@ DEPENDENCIES capybara chartkick debug - delayed + delayed! devise factory_bot_rails faker @@ -528,7 +533,7 @@ DEPENDENCIES pretender puma (= 6.4.2) rack-cors - rails (= 8.0.0.beta1) + rails (= 8.0.0.rc1) redis rename (= 1.1.3)! rspec-rails (= 7.0.1) From 64a52984ca82c20232e9bd59fb9d361ba46d5ffe Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Mon, 21 Oct 2024 08:03:14 -0400 Subject: [PATCH 22/25] rubocop --- config/environments/production.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/environments/production.rb b/config/environments/production.rb index 46eda23e..af635267 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -39,7 +39,7 @@ .then { |logger| ActiveSupport::TaggedLogging.new(logger) } # Prepend all log lines with the following tags. - config.logger = ActiveSupport::TaggedLogging.logger(STDOUT) + config.logger = ActiveSupport::TaggedLogging.logger($stdout) # Change to "debug" to log everything (including potentially personally-identifiable information!) config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") @@ -66,7 +66,7 @@ config.active_record.dump_schema_after_migration = false # Only use :id for inspections in production. - config.active_record.attributes_for_inspect = [ :id ] + config.active_record.attributes_for_inspect = [:id] # Enable DNS rebinding protection and other `Host` header attacks. # config.hosts = [ From 1ee63ff98680c4a64225f6e68d43f185f555e841 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:08:32 +0000 Subject: [PATCH 23/25] Bump activeadmin from 4.0.0.beta12 to 4.0.0.beta13 Bumps [activeadmin](https://github.com/activeadmin/activeadmin) from 4.0.0.beta12 to 4.0.0.beta13. - [Release notes](https://github.com/activeadmin/activeadmin/releases) - [Changelog](https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md) - [Commits](https://github.com/activeadmin/activeadmin/compare/v4.0.0.beta12...v4.0.0.beta13) --- updated-dependencies: - dependency-name: activeadmin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 9b104e23..2aa51831 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '3.3.5' -gem 'activeadmin', '4.0.0.beta12' +gem 'activeadmin', '4.0.0.beta13' gem 'aws-sdk-s3', require: false gem 'chartkick' gem 'delayed', github: 'ryanckulp/delayed' # delayed_job_active_record rails 7 fork: https://github.com/betterment/delayed diff --git a/Gemfile.lock b/Gemfile.lock index 581d8a6c..b00b42d4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -67,7 +67,7 @@ GEM erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activeadmin (4.0.0.beta12) + activeadmin (4.0.0.beta13) arbre (~> 2.0) csv formtastic (>= 3.1) @@ -509,7 +509,7 @@ PLATFORMS x86_64-linux-musl DEPENDENCIES - activeadmin (= 4.0.0.beta12) + activeadmin (= 4.0.0.beta13) aws-sdk-s3 bootsnap capybara From c8bb2030b62b2047c6c26962f890b97da2ea9d03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 10:19:02 +0000 Subject: [PATCH 24/25] Bump stripe from 13.0.1 to 13.1.2 Bumps [stripe](https://github.com/stripe/stripe-ruby) from 13.0.1 to 13.1.2. - [Release notes](https://github.com/stripe/stripe-ruby/releases) - [Changelog](https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/stripe/stripe-ruby/compare/v13.0.1...v13.1.2) --- updated-dependencies: - dependency-name: stripe dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 581d8a6c..ead339c0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -451,7 +451,7 @@ GEM stimulus-rails (1.3.4) railties (>= 6.0.0) stringio (3.1.1) - stripe (13.0.1) + stripe (13.1.2) tailwindcss-rails (3.0.0) railties (>= 7.0.0) tailwindcss-ruby From a432474248231594502484d0d4d140718b20908b Mon Sep 17 00:00:00 2001 From: Ryan Kulp Date: Thu, 21 Nov 2024 18:46:03 -0500 Subject: [PATCH 25/25] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bef55e7f..11e21aba 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Speedrail -a Rails 7 template by [@ryanckulp](https://twitter.com/ryanckulp), created to ship SaaS apps quickly. +a Rails 8 template by [@ryanckulp](https://twitter.com/ryanckulp), created to ship SaaS apps quickly. learn to build 3 projects with Speedrail at [24 Hour MVP](https://founderhacker.com/24-hour-mvp), or check out the [premium documentation](https://gitpaywall.com/p/ryanckulp/speedrail-docs).