From 7d5db81017416759fd797401f7693dc9289bc733 Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Fri, 16 Jan 2026 16:32:01 +1100 Subject: [PATCH 1/6] Upgrade to Shakapacker 8.4.0 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- package.json | 2 +- yarn.lock | 11 +++++------ 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 44c1d371f1..6f59e5e92f 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'activemerchant' gem 'angular-rails-templates' gem 'ransack', '~> 4.1.0' gem 'responders' -gem 'shakapacker', '7.2.3' +gem 'shakapacker', '8.4.0' # Indirect dependency but we access it directly in JS specs. # It turns out to be hard to upgrade but please do if you can. diff --git a/Gemfile.lock b/Gemfile.lock index 500251293e..f010a20e19 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -816,7 +816,7 @@ GEM sd_notify (0.1.1) securerandom (0.4.1) semantic_range (3.1.0) - shakapacker (7.2.3) + shakapacker (8.4.0) activesupport (>= 5.2) package_json rack-proxy (>= 0.6.1) @@ -1085,7 +1085,7 @@ DEPENDENCIES rubocop-rspec_rails sd_notify select2-rails! - shakapacker (= 7.2.3) + shakapacker (= 8.4.0) shoulda-matchers sidekiq sidekiq-scheduler diff --git a/package.json b/package.json index 4ec4289707..1ee8774ec7 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "sass-embedded": "^1.96.0", "sass-loader": "^16.0.6", "select2": "*", - "shakapacker": "7.2.3", + "shakapacker": "8.4.0", "shortcut-buttons-flatpickr": "*", "stimulus": "*", "stimulus-autocomplete": "*", diff --git a/yarn.lock b/yarn.lock index 30864b60f9..1129599ede 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3951,7 +3951,7 @@ glob@^10.3.10: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^7.1.3, glob@^7.1.4, glob@^7.1.7, glob@^7.2.0: +glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -6591,12 +6591,11 @@ setprototypeof@1.2.0, setprototypeof@~1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -shakapacker@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-7.2.3.tgz#12613e8ca3139e47d42003f8d01846dea28f6c40" - integrity sha512-+qF74Y6+hEARqtsmJmBtdc2L0q6eXO21PlPsvtw6aqoxtqhM2VpCCDt51/5Cqnj/5IyEOEICZqStRCSO/q38hg== +shakapacker@8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-8.4.0.tgz#be37a2adba5a090f581811b8c0c1a00f2e227580" + integrity sha512-ZfuxfHxy5tdjv7tCdRZHJKJQLDFwvFXOVBVUj150zgNuRKUlOAyXzOBp9/G5hUhu4MLzuPAif/fuKOdjnZeVtw== dependencies: - glob "^7.2.0" js-yaml "^4.1.0" path-complete-extname "^1.0.0" From 34f9e08824280dcc9a81cc6c32c8cb96911f952b Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Fri, 16 Jan 2026 16:57:19 +1100 Subject: [PATCH 2/6] Add yarn as the package manager --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 1ee8774ec7..a6edce4a43 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "url": "https://github.com/openfoodfoundation/openfoodnetwork" }, "license": "AGPL-3.0", + "packageManager": "yarn@1.22.2", "dependencies": { "@babel/core": "^7.28.5", "@babel/plugin-transform-runtime": "^7.28.5", From cc9cb966b538b10f2ca25a48b8d2ce22f452a824 Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Fri, 16 Jan 2026 16:58:42 +1100 Subject: [PATCH 3/6] Fix images/font path Now `additional_paths` are stripped like `source_path` --- app/views/admin/producer_properties/_form.html.haml | 2 +- app/views/components/_spinner.html.haml | 2 +- app/views/home/_tagline.html.haml | 2 +- app/views/layouts/darkswarm.html.haml | 2 +- app/views/layouts/registration.html.haml | 2 +- app/views/producers/_fat.html.haml | 2 +- app/views/registration/steps/_limit_reached.html.haml | 2 +- app/views/shared/_footer.html.haml | 2 +- app/views/shared/menu/_cart.html.haml | 2 +- app/views/shared/menu/_mobile_menu.html.haml | 4 ++-- app/views/shared/menu/_signed_in.html.haml | 2 +- app/views/shared/menu/_signed_out.html.haml | 2 +- app/views/shop/products/_searchbar.haml | 2 +- app/views/shopping_shared/tabs/_contact.html.haml | 2 +- .../spree/admin/payments/source_forms/_gateway.html.haml | 2 +- app/views/spree/admin/product_properties/index.html.haml | 2 +- app/views/spree/admin/states/index.html.haml | 2 +- 17 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/views/admin/producer_properties/_form.html.haml b/app/views/admin/producer_properties/_form.html.haml index 743bbdbd86..05ad2d874d 100644 --- a/app/views/admin/producer_properties/_form.html.haml +++ b/app/views/admin/producer_properties/_form.html.haml @@ -1,6 +1,6 @@ %fieldset.no-border-top .add_producer_properties - = image_pack_tag 'images/spinner.gif', :plugin => 'spree', :style => 'display:none;', :id => 'busy_indicator' + = image_pack_tag 'spinner.gif', :plugin => 'spree', :style => 'display:none;', :id => 'busy_indicator' %table.index.sortable{"data-sortable-link" => main_app.update_positions_admin_enterprise_producer_properties_url(@enterprise)} %thead %tr diff --git a/app/views/components/_spinner.html.haml b/app/views/components/_spinner.html.haml index dc86cc3d12..b4492c4b14 100644 --- a/app/views/components/_spinner.html.haml +++ b/app/views/components/_spinner.html.haml @@ -1,2 +1,2 @@ = cache do - %img.spinner{ src: image_pack_path("images/spinning-circles.svg"), style: "max-width: 100%" } + %img.spinner{ src: image_pack_path("spinning-circles.svg"), style: "max-width: 100%" } diff --git a/app/views/home/_tagline.html.haml b/app/views/home/_tagline.html.haml index c485337901..56dc937f25 100644 --- a/app/views/home/_tagline.html.haml +++ b/app/views/home/_tagline.html.haml @@ -3,7 +3,7 @@ .row .small-12.text-center.columns %h1 - %img{src: image_pack_path("images/logo-white-notext.png"), title: Spree::Config.site_name} + %img{src: image_pack_path("logo-white-notext.png"), title: Spree::Config.site_name} %br/ %a.button.transparent{href: "/shops"} = t :home_shop diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml index c0a49f953a..0d048daaa7 100644 --- a/app/views/layouts/darkswarm.html.haml +++ b/app/views/layouts/darkswarm.html.haml @@ -13,7 +13,7 @@ - else = favicon_link_tag "/favicon-staging.ico" %link{href: "https://fonts.googleapis.com/css?family=Roboto:400,300italic,400italic,300,700,700italic|Oswald:300,400,700", rel: "stylesheet", type: "text/css"} - %link{href: asset_pack_path("static/fonts/OFN-v2.woff"), rel: "preload", as: "font", crossorigin: "anonymous"} + %link{href: asset_pack_path("static/OFN-v2.woff"), rel: "preload", as: "font", crossorigin: "anonymous"} = render "layouts/matomo_tag" = language_meta_tags diff --git a/app/views/layouts/registration.html.haml b/app/views/layouts/registration.html.haml index a99a45870f..a89f6f8857 100644 --- a/app/views/layouts/registration.html.haml +++ b/app/views/layouts/registration.html.haml @@ -20,7 +20,7 @@ = csrf_meta_tags - %body.off-canvas{ style: "background-image: url(#{image_pack_path('images/tile-wide.png')})", "data-turbo": "false" } + %body.off-canvas{ style: "background-image: url(#{image_pack_path('tile-wide.png')})", "data-turbo": "false" } .off-canvas-wrap{offcanvas: true} .inner-wrap diff --git a/app/views/producers/_fat.html.haml b/app/views/producers/_fat.html.haml index 92d026abab..bf580f4b06 100644 --- a/app/views/producers/_fat.html.haml +++ b/app/views/producers/_fat.html.haml @@ -41,7 +41,7 @@ %p.word-wrap{"ng-if" => "::producer.whatsapp_phone"} %a{"ng-href" => "{{::producer.whatsapp_url}}", target: "_blank"} - %img{ src: image_pack_path("images/social-logos/whatsapp.svg") } + %img{ src: image_pack_path("social-logos/whatsapp.svg") } %span{"ng-bind" => "::producer.whatsapp_phone"} %p.word-wrap{"ng-if" => "::producer.email_address"} diff --git a/app/views/registration/steps/_limit_reached.html.haml b/app/views/registration/steps/_limit_reached.html.haml index edadf76aaa..6f07dd80b9 100644 --- a/app/views/registration/steps/_limit_reached.html.haml +++ b/app/views/registration/steps/_limit_reached.html.haml @@ -6,7 +6,7 @@ %h4= t(".message") .row .small-12.medium-3.large-2.columns.text-right.hide-for-small-only - %img{:src => image_pack_path("images/potatoes.png") } + %img{:src => image_pack_path("potatoes.png") } .small-12.medium-9.large-10.columns %p = t(".text") diff --git a/app/views/shared/_footer.html.haml b/app/views/shared/_footer.html.haml index 915455b5e7..5d121a4ea2 100644 --- a/app/views/shared/_footer.html.haml +++ b/app/views/shared/_footer.html.haml @@ -4,7 +4,7 @@ .row .small-12.columns.text-center .logo - %img{src: image_pack_path("images/logo-white-notext.png") } + %img{src: image_pack_path("logo-white-notext.png") } .row .small-12.medium-8.medium-offset-2.columns.text-center .alert-box diff --git a/app/views/shared/menu/_cart.html.haml b/app/views/shared/menu/_cart.html.haml index 79217c8627..eb5fe0a563 100644 --- a/app/views/shared/menu/_cart.html.haml +++ b/app/views/shared/menu/_cart.html.haml @@ -4,6 +4,6 @@ %span = t '.cart' %span.count - %img{ src: image_pack_path("images/menu/icn-cart.svg") } + %img{ src: image_pack_path("menu/icn-cart.svg") } %span {{ Cart.total_item_count() }} diff --git a/app/views/shared/menu/_mobile_menu.html.haml b/app/views/shared/menu/_mobile_menu.html.haml index be90bbd6e3..544cb65631 100644 --- a/app/views/shared/menu/_mobile_menu.html.haml +++ b/app/views/shared/menu/_mobile_menu.html.haml @@ -2,7 +2,7 @@ %nav.tab-bar.show-for-medium-down %section.left %a.left-off-canvas-toggle.menu-icon - = image_pack_tag "images/menu/btn-menu-mobile.png" + = image_pack_tag "menu/btn-menu-mobile.png" %section.left .ofn-logo @@ -18,7 +18,7 @@ %span = t '.cart' %span.count - = image_pack_tag "images/menu/icn-cart.svg" + = image_pack_tag "menu/icn-cart.svg" %span {{ Cart.total_item_count() }} diff --git a/app/views/shared/menu/_signed_in.html.haml b/app/views/shared/menu/_signed_in.html.haml index f6456b4b21..8d5fec0fae 100644 --- a/app/views/shared/menu/_signed_in.html.haml +++ b/app/views/shared/menu/_signed_in.html.haml @@ -1,7 +1,7 @@ %li.user-menu.has-dropdown.not-click %a{href: "#", class: "top-bar--menu-item-with-icon"} - %img{ src: image_pack_path("images/menu/icn-profile.svg") } + %img{ src: image_pack_path("menu/icn-profile.svg") } %span = t '.profile' diff --git a/app/views/shared/menu/_signed_out.html.haml b/app/views/shared/menu/_signed_out.html.haml index b8aead9de7..d6913ec554 100644 --- a/app/views/shared/menu/_signed_out.html.haml +++ b/app/views/shared/menu/_signed_out.html.haml @@ -1,6 +1,6 @@ = cache_with_locale do %li#login-link{ "data-controller": "login-modal" } %a{"auth": "login", "data-action": "click->login-modal#call" } - %img{ src: image_pack_path("images/menu/icn-login.svg") } + %img{ src: image_pack_path("menu/icn-login.svg") } %span = t 'label_login' diff --git a/app/views/shop/products/_searchbar.haml b/app/views/shop/products/_searchbar.haml index 25ce5fed3c..f069c0bd6a 100644 --- a/app/views/shop/products/_searchbar.haml +++ b/app/views/shop/products/_searchbar.haml @@ -9,7 +9,7 @@ "ng-debounce" => "200", "disable-enter-with-blur" => true} %a.clear{ type: 'button', "focus-search": true, "ng-show": 'query', "ng-click": 'clearQuery()' } - = image_pack_tag "images/icn-close.png" + = image_pack_tag "icn-close.png" .hide-for-large-up %button{ type: 'button', "ng-click": 'toggleFilterSidebar()' } diff --git a/app/views/shopping_shared/tabs/_contact.html.haml b/app/views/shopping_shared/tabs/_contact.html.haml index edf32a754f..de78ddcfd1 100644 --- a/app/views/shopping_shared/tabs/_contact.html.haml +++ b/app/views/shopping_shared/tabs/_contact.html.haml @@ -27,7 +27,7 @@ %br - if current_distributor.whatsapp_phone.present? %a{href: current_distributor.whatsapp_url, target: "_blank" } - %img{ src: image_pack_path("images/social-logos/whatsapp.svg") } + %img{ src: image_pack_path("social-logos/whatsapp.svg") } = current_distributor.whatsapp_phone %br - if current_distributor.website.present? diff --git a/app/views/spree/admin/payments/source_forms/_gateway.html.haml b/app/views/spree/admin/payments/source_forms/_gateway.html.haml index 019021c9c8..ac20d73609 100644 --- a/app/views/spree/admin/payments/source_forms/_gateway.html.haml +++ b/app/views/spree/admin/payments/source_forms/_gateway.html.haml @@ -41,5 +41,5 @@ %a.info.cvvLink{href: "/content/cvv", target: "_blank"} (#{t(:what_is_this)}) .nine.columns - = image_pack_tag 'images/credit_cards/credit_card.gif', class: 'credit-card-image' + = image_pack_tag 'credit_cards/credit_card.gif', class: 'credit-card-image' .clear diff --git a/app/views/spree/admin/product_properties/index.html.haml b/app/views/spree/admin/product_properties/index.html.haml index 593c2e376a..cd07017706 100644 --- a/app/views/spree/admin/product_properties/index.html.haml +++ b/app/views/spree/admin/product_properties/index.html.haml @@ -12,7 +12,7 @@ = form_for @product, url: admin_product_url(@product, @url_filters), method: :put do |f| %fieldset.no-border-top .add_product_properties - = image_pack_tag 'images/select2-spinner.gif', plugin: 'spree', style: 'display:none;', id: 'busy_indicator' + = image_pack_tag 'select2-spinner.gif', plugin: 'spree', style: 'display:none;', id: 'busy_indicator' %table.index.sortable{"data-sortable-link" => update_positions_admin_product_product_properties_url} %thead diff --git a/app/views/spree/admin/states/index.html.haml b/app/views/spree/admin/states/index.html.haml index b0956a725b..b9e72fa193 100644 --- a/app/views/spree/admin/states/index.html.haml +++ b/app/views/spree/admin/states/index.html.haml @@ -11,6 +11,6 @@ - databaseurl = "#{admin_states_path(format: :js)}?country_id=" %select#country.observe_field.select2.fullwidth{"data-base-url" => databaseurl, "data-update" => "#state-list"} = options_from_collection_for_select(@countries, :id, :name, @country.id) -= image_pack_tag 'images/select2-spinner.gif', plugin: 'spree', style: 'display:none;', id: 'busy_indicator' += image_pack_tag 'select2-spinner.gif', plugin: 'spree', style: 'display:none;', id: 'busy_indicator' #state-list = render partial: 'state_list' From f35b2be228eb73e195630a1e2ae25fe20011d360 Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Sun, 18 Jan 2026 14:15:20 +1100 Subject: [PATCH 4/6] Upgrade dependencies --- yarn.lock | 162 +++++++++++++++++++++++++++--------------------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1129599ede..3abc1c06b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1751,94 +1751,94 @@ resolved "https://registry.yarnpkg.com/@orchidjs/unicode-variants/-/unicode-variants-1.1.2.tgz#1fd71791a67fdd1591ebe0dcaadd3964537a824e" integrity sha512-5DobW1CHgnBROOEpFlEXytED5OosEWESFvg/VYmH0143oXcijYTprRYJTs+55HzGM4IqxiLFSuqEzu9mPNwVsA== -"@parcel/watcher-android-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz#507f836d7e2042f798c7d07ad19c3546f9848ac1" - integrity sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== +"@parcel/watcher-android-arm64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.4.tgz#88c67bde2c3efa997a0b1fea540080c6ade0322c" + integrity sha512-hoh0vx4v+b3BNI7Cjoy2/B0ARqcwVNrzN/n7DLq9ZB4I3lrsvhrkCViJyfTj/Qi5xM9YFiH4AmHGK6pgH1ss7g== -"@parcel/watcher-darwin-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz#3d26dce38de6590ef79c47ec2c55793c06ad4f67" - integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== +"@parcel/watcher-darwin-arm64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.4.tgz#d9dc037cff8a4ab7839a79c5287a6e6660f7ab27" + integrity sha512-kphKy377pZiWpAOyTgQYPE5/XEKVMaj6VUjKT5VkNyUJlr2qZAn8gIc7CPzx+kbhvqHDT9d7EqdOqRXT6vk0zw== -"@parcel/watcher-darwin-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz#99f3af3869069ccf774e4ddfccf7e64fd2311ef8" - integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== +"@parcel/watcher-darwin-x64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.4.tgz#da0e13e16ee6d378242e2cfb469d72667624383a" + integrity sha512-UKaQFhCtNJW1A9YyVz3Ju7ydf6QgrpNQfRZ35wNKUhTQ3dxJ/3MULXN5JN/0Z80V/KUBDGa3RZaKq1EQT2a2gg== -"@parcel/watcher-freebsd-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz#14d6857741a9f51dfe51d5b08b7c8afdbc73ad9b" - integrity sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== +"@parcel/watcher-freebsd-x64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.4.tgz#feb7cc9ec680bae3e91dddcdb4fe1c399ed52cc1" + integrity sha512-Dib0Wv3Ow/m2/ttvLdeI2DBXloO7t3Z0oCp4bAb2aqyqOjKPPGrg10pMJJAQ7tt8P4V2rwYwywkDhUia/FgS+Q== -"@parcel/watcher-linux-arm-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz#43c3246d6892381db473bb4f663229ad20b609a1" - integrity sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== +"@parcel/watcher-linux-arm-glibc@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.4.tgz#fa4e9cf8228c8c433e2f035e8b16aa299d892a78" + integrity sha512-I5Vb769pdf7Q7Sf4KNy8Pogl/URRCKu9ImMmnVKYayhynuyGYMzuI4UOWnegQNa2sGpsPSbzDsqbHNMyeyPCgw== -"@parcel/watcher-linux-arm-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz#663750f7090bb6278d2210de643eb8a3f780d08e" - integrity sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== +"@parcel/watcher-linux-arm-musl@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.4.tgz#9ee6792e2d8810af9871ee5bbc2aa04e0b079d62" + integrity sha512-kGO8RPvVrcAotV4QcWh8kZuHr9bXi9a3bSZw7kFarYR0+fGliU7hd/zevhjw8fnvIKG3J9EO5G6sXNGCSNMYPQ== -"@parcel/watcher-linux-arm64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz#ba60e1f56977f7e47cd7e31ad65d15fdcbd07e30" - integrity sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== +"@parcel/watcher-linux-arm64-glibc@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.4.tgz#624c6d874d99afa79305720f96a0c233d4ad7fde" + integrity sha512-KU75aooXhqGFY2W5/p8DYYHt4hrjHZod8AhcGAmhzPn/etTa+lYCDB2b1sJy3sWJ8ahFVTdy+EbqSBvMx3iFlw== -"@parcel/watcher-linux-arm64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz#f7fbcdff2f04c526f96eac01f97419a6a99855d2" - integrity sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== +"@parcel/watcher-linux-arm64-musl@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.4.tgz#5341e88b9e645d31c015ed40f384e60e49bd74d2" + integrity sha512-Qx8uNiIekVutnzbVdrgSanM+cbpDD3boB1f8vMtnuG5Zau4/bdDbXyKwIn0ToqFhIuob73bcxV9NwRm04/hzHQ== -"@parcel/watcher-linux-x64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" - integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== +"@parcel/watcher-linux-x64-glibc@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.4.tgz#be5bcc49d3f6d21cc81bb531970a05d3721e385c" + integrity sha512-UYBQvhYmgAv61LNUn24qGQdjtycFBKSK3EXr72DbJqX9aaLbtCOO8+1SkKhD/GNiJ97ExgcHBrukcYhVjrnogA== -"@parcel/watcher-linux-x64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" - integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== +"@parcel/watcher-linux-x64-musl@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.4.tgz#bffd3895b1f0cc8fd1436e409fd65d0a901281c0" + integrity sha512-YoRWCVgxv8akZrMhdyVi6/TyoeeMkQ0PGGOf2E4omODrvd1wxniXP+DBynKoHryStks7l+fDAMUBRzqNHrVOpg== -"@parcel/watcher-win32-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz#7e9e02a26784d47503de1d10e8eab6cceb524243" - integrity sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== +"@parcel/watcher-win32-arm64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.4.tgz#7fb8aedea5b34ba97a01e1555929d01f4eb72fe4" + integrity sha512-iby+D/YNXWkiQNYcIhg8P5hSjzXEHaQrk2SLrWOUD7VeC4Ohu0WQvmV+HDJokZVJ2UjJ4AGXW3bx7Lls9Ln4TQ== -"@parcel/watcher-win32-ia32@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz#2d0f94fa59a873cdc584bf7f6b1dc628ddf976e6" - integrity sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== +"@parcel/watcher-win32-ia32@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.4.tgz#f7f94ebdb21dedf37b12e030a82d4211798a1c26" + integrity sha512-vQN+KIReG0a2ZDpVv8cgddlf67J8hk1WfZMMP7sMeZmJRSmEax5xNDNWKdgqSe2brOKTQQAs3aCCUal2qBHAyg== -"@parcel/watcher-win32-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz#ae52693259664ba6f2228fa61d7ee44b64ea0947" - integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== +"@parcel/watcher-win32-x64@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.4.tgz#8d895c9723f7fffdf4b360fd1becf1b6bcb571df" + integrity sha512-3A6efb6BOKwyw7yk9ro2vus2YTt2nvcd56AuzxdMiVOxL9umDyN5PKkKfZ/gZ9row41SjVmTVQNWQhaRRGpOKw== "@parcel/watcher@^2.4.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" - integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== + version "2.5.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.4.tgz#a6575b0a018b4e263589c1e7bc2ceb73c1ee84de" + integrity sha512-WYa2tUVV5HiArWPB3ydlOc4R2ivq0IDrlqhMi3l7mVsFEXNcTfxYFPIHXHXIh/ca/y/V5N4E1zecyxdIBjYnkQ== dependencies: - detect-libc "^1.0.3" + detect-libc "^2.0.3" is-glob "^4.0.3" - micromatch "^4.0.5" node-addon-api "^7.0.0" + picomatch "^4.0.3" optionalDependencies: - "@parcel/watcher-android-arm64" "2.5.1" - "@parcel/watcher-darwin-arm64" "2.5.1" - "@parcel/watcher-darwin-x64" "2.5.1" - "@parcel/watcher-freebsd-x64" "2.5.1" - "@parcel/watcher-linux-arm-glibc" "2.5.1" - "@parcel/watcher-linux-arm-musl" "2.5.1" - "@parcel/watcher-linux-arm64-glibc" "2.5.1" - "@parcel/watcher-linux-arm64-musl" "2.5.1" - "@parcel/watcher-linux-x64-glibc" "2.5.1" - "@parcel/watcher-linux-x64-musl" "2.5.1" - "@parcel/watcher-win32-arm64" "2.5.1" - "@parcel/watcher-win32-ia32" "2.5.1" - "@parcel/watcher-win32-x64" "2.5.1" + "@parcel/watcher-android-arm64" "2.5.4" + "@parcel/watcher-darwin-arm64" "2.5.4" + "@parcel/watcher-darwin-x64" "2.5.4" + "@parcel/watcher-freebsd-x64" "2.5.4" + "@parcel/watcher-linux-arm-glibc" "2.5.4" + "@parcel/watcher-linux-arm-musl" "2.5.4" + "@parcel/watcher-linux-arm64-glibc" "2.5.4" + "@parcel/watcher-linux-arm64-musl" "2.5.4" + "@parcel/watcher-linux-x64-glibc" "2.5.4" + "@parcel/watcher-linux-x64-musl" "2.5.4" + "@parcel/watcher-win32-arm64" "2.5.4" + "@parcel/watcher-win32-ia32" "2.5.4" + "@parcel/watcher-win32-x64" "2.5.4" "@pkgjs/parseargs@^0.11.0": version "0.11.0" @@ -2703,9 +2703,9 @@ base64id@2.0.0, base64id@~2.0.0: integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== baseline-browser-mapping@^2.9.0: - version "2.9.14" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz#3b6af0bc032445bca04de58caa9a87cfe921cbb3" - integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg== + version "2.9.15" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz#6baaa0069883f50a99cdb31b56646491f47c05d7" + integrity sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg== batch@0.6.1: version "0.6.1" @@ -2851,12 +2851,12 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001760: +caniuse-lite@^1.0.0: version "1.0.30001760" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz#bdd1960fafedf8d5f04ff16e81460506ff9b798f" integrity sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw== -caniuse-lite@^1.0.30001759: +caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001760: version "1.0.30001764" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz#03206c56469f236103b90f9ae10bcb8b9e1f6005" integrity sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g== @@ -3358,10 +3358,10 @@ destroy@1.2.0, destroy@~1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +detect-libc@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== detect-newline@^3.1.0: version "3.1.0" @@ -5082,7 +5082,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^4.0.2, micromatch@^4.0.5, micromatch@^4.0.8: +micromatch@^4.0.2, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -5453,7 +5453,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2: +picomatch@^4.0.2, picomatch@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== From e6d556c80974e6e3f6190b216ce4c9d20b25ef7d Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Wed, 21 Jan 2026 15:16:48 +1100 Subject: [PATCH 5/6] Update locale cache key to invalidate cache --- app/helpers/application_helper.rb | 2 +- spec/helpers/application_helper_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4da992b8ef..ae1fb6849c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -74,6 +74,6 @@ module ApplicationHelper # Update "v1" to invalidate existing cache key def cache_key_with_locale(key, locale) - Array.wrap(key) + ["v2", locale.to_s, I18nDigests.for_locale(locale)] + Array.wrap(key) + ["v3", locale.to_s, I18nDigests.for_locale(locale)] end end diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 59dd6c4013..9d68a60816 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -87,13 +87,13 @@ RSpec.describe ApplicationHelper do it "appends locale and digest to a single key" do expect( helper.cache_key_with_locale("single-key", "en") - ).to eq(["single-key", "v2", "en", en_digest]) + ).to eq(["single-key", "v3", "en", en_digest]) end it "appends locale and digest to multiple keys" do expect( helper.cache_key_with_locale(["array", "of", "keys"], "es") - ).to eq(["array", "of", "keys", "v2", "es", es_digest]) + ).to eq(["array", "of", "keys", "v3", "es", es_digest]) end end end From cd956daddae27a765f715a20efb2241bc4568d81 Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Tue, 27 Jan 2026 09:23:32 +1100 Subject: [PATCH 6/6] Use factory to create address It removes dependency on hard coded country and state id --- spec/system/consumer/registration_spec.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spec/system/consumer/registration_spec.rb b/spec/system/consumer/registration_spec.rb index ad37f4a8c1..13c7916a21 100644 --- a/spec/system/consumer/registration_spec.rb +++ b/spec/system/consumer/registration_spec.rb @@ -165,11 +165,7 @@ RSpec.describe "Registration" do end before do - address = Spree::Address.create!(firstname: 'John', lastname: 'Doe', - address1: '1400 Sesame street', zipcode: '3070', - city: 'Southcote', phone: '12 3456 7890', - country_id: 1, state_id: 1, company: 'unused') - Enterprise.create(name: 'My Awesome Enterprise', address:, owner:) + Enterprise.create(name: 'My Awesome Enterprise', address: create(:address), owner:) end it "checks that button after failure is still enabled" do