From c7bb3be6034fd10e32785745644eeb96f3adef32 Mon Sep 17 00:00:00 2001 From: Helio Cola Date: Thu, 6 Jul 2023 16:42:20 -0400 Subject: [PATCH] Upgrade ruby 3.0.6 (#19651) Co-authored-by: Josh Klar Co-authored-by: Mac Siri --- .github/workflows/ci-cd.yml | 1 + .gitpod.dockerfile | 2 +- .ruby-version | 2 +- Containerfile | 2 +- Gemfile | 2 ++ Gemfile.lock | 6 ++++-- bin/knapsack_pro_rspec | 4 ++-- spec/liquid_tags/twitch_tag_spec.rb | 4 ++-- spec/liquid_tags/unified_embed/tag_spec.rb | 2 +- spec/rails_helper.rb | 2 ++ spec/requests/articles/articles_spec.rb | 4 ++-- spec/requests/stories/tagged_articles_spec.rb | 4 ++-- spec/services/markdown_processor/parser_spec.rb | 2 +- uffizzi/Dockerfile | 2 +- vendor/cache/cgi-0.3.6.gem | Bin 0 -> 36864 bytes 15 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 vendor/cache/cgi-0.3.6.gem diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index dd82a3105..9ab319e56 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -19,6 +19,7 @@ env: DATABASE_NAME_TEST: Forem_test KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true POSTGRES_PASSWORD: postgres + KNAPSACK_PRO_LOG_LEVEL: info jobs: bundle_install: diff --git a/.gitpod.dockerfile b/.gitpod.dockerfile index 12595d9bd..ea7b4b646 100644 --- a/.gitpod.dockerfile +++ b/.gitpod.dockerfile @@ -1,7 +1,7 @@ FROM gitpod/workspace-postgres # Install Ruby -ENV RUBY_VERSION=3.0.2 +ENV RUBY_VERSION=3.0.6 # Install the GitHub CLI RUN brew install gh diff --git a/.ruby-version b/.ruby-version index b50214693..818bd47ab 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.2 +3.0.6 diff --git a/Containerfile b/Containerfile index 99ae22f91..5de64bbbd 100644 --- a/Containerfile +++ b/Containerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/forem/ruby:3.0.2@sha256:04c945460e5999c0483b119074597dba62b863f5f5ea3c98bff4169e0d2f990b as base +FROM ghcr.io/forem/ruby:3.0.6@sha256:287260a9c729fcd4f7952c551f8320cfe484db9d1e3ac77986b175b959aba715 as base FROM base as builder diff --git a/Gemfile b/Gemfile index 66bcf2a78..aa5162b02 100644 --- a/Gemfile +++ b/Gemfile @@ -173,3 +173,5 @@ group :test do gem "with_model", "~> 2.1.6" # Dynamically build a model within an RSpec context gem "zonebie", "~> 0.6.1" # Runs your tests in a random timezone end + +gem "cgi", "~> 0.3.6" # Support for the Common Gateway Interface protocol. diff --git a/Gemfile.lock b/Gemfile.lock index 045aa8910..24226c330 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -156,6 +156,7 @@ GEM activesupport (>= 3.2.0) carrierwave fastimage + cgi (0.3.6) chartkick (4.2.1) cloudinary (1.26.0) aws_cf_signer @@ -979,6 +980,7 @@ DEPENDENCIES capybara (~> 3.37.1) carrierwave (~> 2.2) carrierwave-bombshelter (~> 0.2) + cgi (~> 0.3.6) cloudinary (~> 1.23) counter_culture (~> 3.2) cuprite (~> 0.13) @@ -1118,7 +1120,7 @@ DEPENDENCIES zonebie (~> 0.6.1) RUBY VERSION - ruby 3.0.2p107 + ruby 3.0.6p216 BUNDLED WITH - 2.2.22 + 2.2.33 diff --git a/bin/knapsack_pro_rspec b/bin/knapsack_pro_rspec index 949a2c99d..875a25c2d 100755 --- a/bin/knapsack_pro_rspec +++ b/bin/knapsack_pro_rspec @@ -4,7 +4,7 @@ if [ "$KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC" = "" ]; then KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC=disabled-for-fork \ KNAPSACK_PRO_MAX_REQUEST_RETRIES=0 \ KNAPSACK_PRO_CI_NODE_RETRY_COUNT=0 \ - bundle exec rake "knapsack_pro:rspec[--format RspecJunitFormatter --out tmp/rspec.xml]" + bundle exec rake "knapsack_pro:rspec[--force-color --format documentation --format RspecJunitFormatter --out tmp/rspec.xml]" else - bundle exec rake "knapsack_pro:queue:rspec[--format RspecJunitFormatter --out tmp/rspec.xml]" + bundle exec rake "knapsack_pro:queue:rspec[--force-color --format documentation --format RspecJunitFormatter --out tmp/rspec.xml]" fi diff --git a/spec/liquid_tags/twitch_tag_spec.rb b/spec/liquid_tags/twitch_tag_spec.rb index 38091672d..81d5bc16e 100644 --- a/spec/liquid_tags/twitch_tag_spec.rb +++ b/spec/liquid_tags/twitch_tag_spec.rb @@ -7,12 +7,12 @@ RSpec.describe TwitchTag, type: :liquid_tag do def assert_parses_clip(slug, token) liquid = Liquid::Template.parse("{% twitch #{token} %}").render - expect(liquid).to include "https://clips.twitch.tv/embed?clip=#{slug}&parent=localhost&autoplay=false" + expect(liquid).to include "https://clips.twitch.tv/embed?clip=#{slug}&parent=forem.test&autoplay=false" end def assert_parses_video(id, token) liquid = Liquid::Template.parse("{% twitch #{token} %}").render - expect(liquid).to include "https://player.twitch.tv/?video=#{id}&parent=localhost&autoplay=false" + expect(liquid).to include "https://player.twitch.tv/?video=#{id}&parent=forem.test&autoplay=false" end context "when twitch clip slug passed in" do diff --git a/spec/liquid_tags/unified_embed/tag_spec.rb b/spec/liquid_tags/unified_embed/tag_spec.rb index a4ada6ecc..8a6f0cbb6 100644 --- a/spec/liquid_tags/unified_embed/tag_spec.rb +++ b/spec/liquid_tags/unified_embed/tag_spec.rb @@ -22,7 +22,7 @@ RSpec.describe UnifiedEmbed::Tag, type: :liquid_tag do headers: { "Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3", - "User-Agent" => "DEV(local) (http://localhost:3000)" + "User-Agent" => "DEV(local) (http://forem.test)" }, ) .to_return( diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 80c5056c2..527eb8dcb 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,4 +1,6 @@ ENV["RAILS_ENV"] = "test" +# Temporary workaround for Ruby 3.0.6 / CGI udpate +ENV["APP_DOMAIN"] = "forem.test" require "knapsack_pro" require "simplecov" require "simplecov_json_formatter" diff --git a/spec/requests/articles/articles_spec.rb b/spec/requests/articles/articles_spec.rb index 75478f699..1c11d90ad 100644 --- a/spec/requests/articles/articles_spec.rb +++ b/spec/requests/articles/articles_spec.rb @@ -280,12 +280,12 @@ RSpec.describe "Articles" do it "sets canonical url with base" do get "/new" - expect(response.body).to include('') + expect(response.body).to include('') end it "sets canonical url with prefill" do get "/new?prefill=dsdweewewew" - expect(response.body).to include('') + expect(response.body).to include('') end end diff --git a/spec/requests/stories/tagged_articles_spec.rb b/spec/requests/stories/tagged_articles_spec.rb index 476b55823..4aa9fa310 100644 --- a/spec/requests/stories/tagged_articles_spec.rb +++ b/spec/requests/stories/tagged_articles_spec.rb @@ -260,7 +260,7 @@ RSpec.describe "Stories::TaggedArticlesIndex" do end def renders_canonical_url(tag) - expect(response.body).to include("") + expect(response.body).to include("") end it "renders proper page 2", :aggregate_failures do @@ -276,7 +276,7 @@ RSpec.describe "Stories::TaggedArticlesIndex" do end def renders_page_2_canonical_url(tag) - expected_tag = "" + expected_tag = "" expect(response.body).to include(expected_tag) end end diff --git a/spec/services/markdown_processor/parser_spec.rb b/spec/services/markdown_processor/parser_spec.rb index 235c2bcd8..7d99df13b 100644 --- a/spec/services/markdown_processor/parser_spec.rb +++ b/spec/services/markdown_processor/parser_spec.rb @@ -278,7 +278,7 @@ RSpec.describe MarkdownProcessor::Parser, type: :service do end it "strips the styles as expected" do - linked_user = %(@user1) + linked_user = %(@user1) expected_result = <<~HTML.strip

x{animation:s}#{linked_user} s{}<br> <style>{transition:color 1s}:hover{color:red}</p> diff --git a/uffizzi/Dockerfile b/uffizzi/Dockerfile index 9bbf5c132..34b7ec1e6 100644 --- a/uffizzi/Dockerfile +++ b/uffizzi/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/forem/ruby:3.0.2@sha256:04c945460e5999c0483b119074597dba62b863f5f5ea3c98bff4169e0d2f990b as base +FROM ghcr.io/forem/ruby:3.0.6@sha256:287260a9c729fcd4f7952c551f8320cfe484db9d1e3ac77986b175b959aba715 as base FROM base as builder diff --git a/vendor/cache/cgi-0.3.6.gem b/vendor/cache/cgi-0.3.6.gem new file mode 100644 index 0000000000000000000000000000000000000000..925746cd3a9552ee391145cf709c5e6d6ee20639 GIT binary patch literal 36864 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

  • z1$yq4fJ)L&hr#Dd%;P}6`}$3SFiCXVyC(k zxf98P#dHgbpPhnp-c2OG_hYwNp#y3t(0R$Mz2W5XJoY5$Ioqet34_Vdg;#jR5$aWz z>M(PLE(_T+RGIF6=#&#UtVKa@3po_EB;dU%*v~?j2I5si5X+~@{|`~55S;frr=9a5 zsS3k;Q98`Vmq05oaiuR$Czrj+3-B`SL4Q~x>FBUcak-`N$YG>Qt>n zQ!w!lwh5Uu;(XD5Yuv8L>sz>4Y&e6nwAbx-Q4S{!EKm575ycVoHe3UDW1UOh;d7S@Xc%=fe>=NZ-L~1BZf`{{e9J$z3w-BhGPFko1 zg{^8&hjSKA(U-X!W6s=-ab@nt*fDowe3-j22F#Vhya_GJ>wz$D$6LS{y&7t)JsT7N zxOd6--u(RMyUSN=l>!tfMIwJZfJ)zOIOpZ#aSB7x&jbjjtm}hRa@Gqr>2vzvVvr3k z`YPRC;vS4RQsDUE(B}6|3`1h^m&I-P$E#^Yec^WOat>Qfc3?97r>7JkzXfMwszSl& z_%raL%9E^GsVpQ9na=BLQv8l70^DenQsf}@G6{lRjNv1Ht0?}Qs;R5}3!DICQnsdY znLvM-Iq-OdakVFQelXf27|?O15}|RHItihMx=9RkL+z$Iwoam@B$MMnxe0PaAq+K@ zp0W{B<+)MPQgkAz<&+)1Cb5gAz^yDIVq?xliMvB?4Z0H+w5;4=6xbG4(ZI$o4>1bY zpX_h0?*uRQcb{)mrlVeEbG^Q^8PG=f z4m?%9ssBSWfTM32fsv(DpGt1OuYgC`Mg?CR`tfk-h!{fiXY#%~Xg9Nyt!M{9Fm~8V z1&dCMZb#x+Z`8Ly+@Jrf%aRJEa#@M5;%Mtm<0JfDO)eXQ`2N;rz3cE|9%kRYm-Eu~ zMUK2UfINLW;|1ZIJ)G);;1>OC#r?$Frnqn`73!-}UTP>`PA=K%xD?iKAD`^wj^?XX zZg)hb(0ARKY{}$L0B|_mFM+e1GlRYCoa2Y74&gNpk*_CPFBW-N?sd*?CD-iB?NhTZ zXrJ}9TfQYz;hEJ%mYb1|dT(Ywv7VEB);2o8ednG%pAIbBX|e61CwIL0NkbP^#f^-w z6k3@xGA(~t%al!tsL0Hm`j5Zv=hw9dCST@g^L}D`VEL0R#+Gl@4W0`BF4-)@y*GEHlv)x;0BVvB9U)>QG>}s-7;L7JG3Q3FREOT46_SlbqyVN4Wzviv; z)T+;j@|ffzx{$^AY?|tdb2_S@^LYwB%`dpJ!6>40nrRz*&XI>lD<{Of@9)Ua(vA%a z@09P}@hY^&KF@6NT3(yCjk}yKCnj5N*)YNL^31c%|9515c>MhM`TqI)&z%3y#K7?X zKQn{#Oz-^+azG9_AUPv7IlH(tw^*+-F*ipqy^0(|2}iJ74RgMtA8bEzU-T3nJ?1awk)Mrvvf9uo=4L;QyD93GIB@as0NTW%qz zwnZBnAAA4y>&yN3>L%SyVZY>ctS3kDaiXIiD;z9ld7LCI3&6b63ujy^z{yeeys;^ptaXGgr*IJI|SOdNI?TB@-7sWnDh; z(9R2Stip{+$6x!MP-NN4(p`G%)BSnD1snO>9)41c4i8?xIVzrr|} TVr