Neal Chambers
bc559b966c
Safely autocorrect Style/FetchEnvVar
...
Inspecting 1483 files
..............................................................................................................................................................C.............................................................................................................................................................................CC.............................................................................................................................................................................C.................................................................................................................................................................................................................................................................................................................................................................C.................................................................................C..............................................................................................................................................................................................C.....................................................................................................................................................................................................................................C......................................................................................................................
Offenses:
app/helpers/discourse_helper.rb:9:5: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch('DISCOURSE_URL') or ENV.fetch('DISCOURSE_URL', nil) instead of ENV['DISCOURSE_URL'].
ENV['DISCOURSE_URL']
^^^^^^^^^^^^^^^^^^^^
app/models/spree/preferences/configuration.rb:35:10: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch('RAILS_CACHE_ID') or ENV.fetch('RAILS_CACHE_ID', nil) instead of ENV['RAILS_CACHE_ID'].
[ENV['RAILS_CACHE_ID'], self.class.name, name].flatten.join('::').underscore
^^^^^^^^^^^^^^^^^^^^^
app/models/spree/preferences/preferable.rb:84:10: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch("RAILS_CACHE_ID") or ENV.fetch("RAILS_CACHE_ID", nil) instead of ENV["RAILS_CACHE_ID"].
[ENV["RAILS_CACHE_ID"], self.class.name, name, id].join('::').underscore
^^^^^^^^^^^^^^^^^^^^^
app/services/default_country.rb:13:40: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch("DEFAULT_COUNTRY_CODE") or ENV.fetch("DEFAULT_COUNTRY_CODE", nil) instead of ENV["DEFAULT_COUNTRY_CODE"].
Spree::Country.cached_find_by(iso: ENV["DEFAULT_COUNTRY_CODE"]) || Spree::Country.first
^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/services/default_country.rb:13:73: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
Spree::Country.cached_find_by(iso: ENV.fetch("DEFAULT_COUNTRY_CODE",
^
app/services/default_country.rb:13:101: C: [Corrected] Layout/LineLength: Line is too long. [102/100]
Spree::Country.cached_find_by(iso: ENV.fetch("DEFAULT_COUNTRY_CODE", nil)) || Spree::Country.first
^^
app/services/default_country.rb:14:1: C: [Corrected] Layout/ArgumentAlignment: Align the arguments of a method call if they span more than one line.
nil)) || Spree::Country.first
^^^
spec/base_spec_helper.rb:51:49: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch("SITE_URL") or ENV.fetch("SITE_URL", nil) instead of ENV["SITE_URL"].
ActionMailer::Base.default_url_options[:host] = ENV["SITE_URL"]
^^^^^^^^^^^^^^^
spec/controllers/spree/credit_cards_controller_spec.rb:8:20: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch('STRIPE_SECRET_TEST_API_KEY') or ENV.fetch('STRIPE_SECRET_TEST_API_KEY', nil) instead of ENV['STRIPE_SECRET_TEST_API_KEY'].
let(:secret) { ENV['STRIPE_SECRET_TEST_API_KEY'] }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/models/order_balance_spec.rb:48:70: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
expect(order_balance.display_amount).to eq(Spree::Money.new(20,
^
spec/models/order_balance_spec.rb:48:81: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch('currency') or ENV.fetch('currency', nil) instead of ENV['currency'].
expect(order_balance.display_amount).to eq(Spree::Money.new(20, currency: ENV['currency']))
^^^^^^^^^^^^^^^
spec/models/order_balance_spec.rb:48:101: C: [Corrected] Layout/LineLength: Line is too long. [108/100]
expect(order_balance.display_amount).to eq(Spree::Money.new(20, currency: ENV.fetch('currency', nil)))
^^^^^^^^
spec/models/order_balance_spec.rb:49:1: C: [Corrected] Layout/ArgumentAlignment: Align the arguments of a method call if they span more than one line.
currency: ENV.fetch('currency', nil)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/models/order_balance_spec.rb:49:98: C: [Corrected] Layout/TrailingWhitespace: Trailing whitespace detected.
currency: ENV.fetch('currency',
^
spec/models/order_balance_spec.rb:49:101: C: [Corrected] Layout/LineLength: Line is too long. [104/100]
currency: ENV.fetch('currency', nil)))
^^^^
spec/models/order_balance_spec.rb:50:1: C: [Corrected] Layout/ArgumentAlignment: Align the arguments of a method call if they span more than one line.
nil)))
^^^
spec/support/vcr_setup.rb:10:50: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch('STRIPE_SECRET_TEST_API_KEY') or ENV.fetch('STRIPE_SECRET_TEST_API_KEY', nil) instead of ENV['STRIPE_SECRET_TEST_API_KEY'].
config.filter_sensitive_data('<HIDDEN_KEY>') { ENV['STRIPE_SECRET_TEST_API_KEY'] }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/support/vcr_setup.rb:11:55: C: [Corrected] Style/FetchEnvVar: Use ENV.fetch('STRIPE_CUSTOMER') or ENV.fetch('STRIPE_CUSTOMER', nil) instead of ENV['STRIPE_CUSTOMER'].
config.filter_sensitive_data('<HIDDEN_CUSTOMER>') { ENV['STRIPE_CUSTOMER'] }
^^^^^^^^^^^^^^^^^^^^^^
1483 files inspected, 18 offenses detected, 18 offenses corrected
2023-08-20 12:33:43 +09:00
Neal Chambers
fd795d8513
Safely autocorrect Style/BlockComments
...
Inspecting 1483 files
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C......................................................
Offenses:
spec/system/admin/tag_rules_spec.rb:209:1: C: [Corrected] Style/BlockComments: Do not use block comments.
=begin ...
^^^^^^
spec/system/admin/tag_rules_spec.rb:217:101: C: Layout/LineLength: Line is too long. [103/100]
# expect(default_fsm_tag_rule.preferred_matched_shipping_methods_visibility).to eq "hidden"
^^^
spec/system/admin/tag_rules_spec.rb:241:1: C: [Corrected] Layout/CommentIndentation: Incorrect indentation detected (column 0 instead of 6).
# expect(foc_tag_rule.preferred_matched_order_cycles_visibility).to eq "hidden"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1483 files inspected, 3 offenses detected, 2 offenses corrected
2023-08-20 12:33:43 +09:00
Neal Chambers
06e217c527
Safely autocorrect Rails/WhereNot
...
Inspecting 1483 files
........................................................................................................................C..................................................................................................................C...........CC.C..........................................C......C..........C.........................C......................CC..........C........................................................................................................................C.......................................................................................................C........................................................C...........................................................................................................................................C......................................C.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Offenses:
app/controllers/spree/admin/products_controller.rb:183:11: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { import_date: nil }) instead of manually constructing negated SQL in where.
where('spree_variants.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:26: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
scope_with_deleted.where('id != ?', id)
^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:40: C: [Corrected] Style/HashSyntax: Omit the hash value.
scope_with_deleted.where.not(id: id)
^^
app/models/enterprise.rb:152:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: ready_enterprises }) instead of manually constructing negated SQL in where.
where("enterprises.id NOT IN (?)", ready_enterprises)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:158:31: C: [Corrected] Rails/WhereNot: Use where.not(sells: 'none') instead of manually constructing negated SQL in where.
scope :is_distributor, -> { where('sells != ?', 'none') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:479:17: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
dups = dups.where('id != ?', id) unless new_record?
^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:534:43: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: self }) instead of manually constructing negated SQL in where.
enterprises = owner.owned_enterprises.where('enterprises.id != ?', self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:583:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: id }) instead of manually constructing negated SQL in where.
where('enterprises.id != ?', id).
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_fee.rb:40:24: C: [Corrected] Rails/WhereNot: Use where.not(spree_calculators: { type: PER_ORDER_CALCULATORS }) instead of manually constructing negated SQL in where.
joins(:calculator).where('spree_calculators.type NOT IN (?)', PER_ORDER_CALCULATORS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_relationship.rb:78:19: C: [Corrected] Rails/WhereNot: Use where.not(name: perms) instead of manually constructing negated SQL in where.
permissions.where('name NOT IN (?)', perms).destroy_all
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/product_import/inventory_reset_strategy.rb:27:16: C: [Corrected] Rails/WhereNot: Use where.not(id: excluded_items_ids) instead of manually constructing negated SQL in where.
relation.where('id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/proxy_order.rb:19:25: C: [Corrected] Rails/WhereNot: Use where.not(proxy_orders: { canceled_at: nil }) instead of manually constructing negated SQL in where.
scope :canceled, -> { where('proxy_orders.canceled_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/credit_card.rb:26:39: C: [Corrected] Rails/WhereNot: Use where.not(gateway_customer_profile_id: nil) instead of manually constructing negated SQL in where.
scope :with_payment_profile, -> { where('gateway_customer_profile_id IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/product.rb:166:9: C: [Corrected] Rails/WhereNot: Use where.not(order_cycles: { id: nil }) instead of manually constructing negated SQL in where.
where('order_cycles.id IS NOT NULL')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:94:30: C: [Corrected] Rails/WhereNot: Use where.not(deleted_at: nil) instead of manually constructing negated SQL in where.
scope :deleted, lambda { where('deleted_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:165:43: C: [Corrected] Rails/WhereNot: Use where.not(spree_prices: { amount: nil }) instead of manually constructing negated SQL in where.
where('spree_prices.amount IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:19: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
Spree::Zone.where('id != ?', id).update_all(default_tax: false) if default_tax
^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:33: C: [Corrected] Style/HashSyntax: Omit the hash value.
Spree::Zone.where.not(id: id).update_all(default_tax: false) if default_tax
^^
app/models/variant_override.rb:32:7: C: [Corrected] Rails/WhereNot: Use where.not(variant_overrides: { import_date: nil }) instead of manually constructing negated SQL in where.
where('variant_overrides.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/services/cap_quantity.rb:45:22: C: [Corrected] Rails/WhereNot: Use where.not(variant_id: available_variants_for.select(&:id)) instead of manually constructing negated SQL in where.
order.line_items.where('variant_id NOT IN (?)', available_variants_for.select(&:id))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/catalog/app/services/catalog/product_import/products_reset_strategy.rb:32:18: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { id: excluded_items_ids }) instead of manually constructing negated SQL in where.
relation.where('spree_variants.id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb:78:18: C: [Corrected] Rails/WhereNot: Use where.not(order_cycle_id: order_cycle_ids) instead of manually constructing negated SQL in where.
orphaned.where('order_cycle_id NOT IN (?)', order_cycle_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:27:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: nil }) instead of manually constructing negated SQL in where.
.where("enterprises.id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:39:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprise_id: nil) instead of manually constructing negated SQL in where.
.where("enterprise_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:40:14: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/tasks/data/anonymize_data.rake:50:16: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
Customer.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1483 files inspected, 26 offenses detected, 26 offenses corrected
2023-08-20 12:33:43 +09:00
Konrad
241239ac68
Merge pull request #11379 from dacook/respond_to-not_found
...
Respond to all formats for "not found" error
2023-08-18 18:47:09 +02:00
Konrad
0dc8996701
Merge pull request #11295 from Matt-Yorkley/scope-error
...
Remove product display_as cell
2023-08-18 18:16:16 +02:00
Konrad
df7d42a420
Merge pull request #11352 from abdellani/remove-dead-code-bulk-invoice
...
Remove dead code related to bulk invoice printing
2023-08-18 18:14:01 +02:00
Matt-Yorkley
2b9b79c828
Remove product display_as cell
...
This was attempting to reference the master variant, which is now gone. Fixes an Angular scope error.
2023-08-18 17:38:36 +02:00
Konrad
f3b09508ff
Merge pull request #11347 from abdellani/fix-edit-order-button
...
fix cancel order button
2023-08-18 17:07:42 +02:00
Konrad
d8bc479a70
Merge pull request #11387 from jibees/10957-missing-translation-invalid-url
...
Admin, White Label: add translation for invalid URL in white label context
2023-08-18 15:59:39 +02:00
dependabot[bot]
fcb3a74b64
chore(deps): bump puma from 6.3.0 to 6.3.1
...
Bumps [puma](https://github.com/puma/puma ) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/puma/puma/releases )
- [Changelog](https://github.com/puma/puma/blob/master/History.md )
- [Commits](https://github.com/puma/puma/compare/v6.3.0...v6.3.1 )
---
updated-dependencies:
- dependency-name: puma
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-08-18 09:10:32 +00:00
Jean-Baptiste Bellet
2abfa623f0
Once products start loading, scroll higher, ie. just above filters
...
can see the loading spinner then
2023-08-18 10:20:10 +02:00
jibees
5395bc56f8
Merge pull request #11416 from jibees/11197-buu-no-results-page-and-number-of-results-tweaks
...
🚧 BUU: No results page and number of results tweaks
2023-08-18 10:14:09 +02:00
Jean-Baptiste Bellet
06fccd8618
Totally hide input above its container
2023-08-18 09:46:57 +02:00
Jean-Baptiste Bellet
47115a0daf
Change default label for searched products
2023-08-18 09:46:57 +02:00
Jean-Baptiste Bellet
721baa4d3f
Increase button size
2023-08-18 09:46:57 +02:00
Jean-Baptiste Bellet
117c373985
Add "remove-sign" icon before text in disruptive button
2023-08-18 09:46:57 +02:00
Jean-Baptiste Bellet
d27b2084ed
Do not underline text when it's a button
2023-08-18 09:46:56 +02:00
Jean-Baptiste Bellet
e4479e7935
Increase button height when no result
2023-08-18 09:46:56 +02:00
Jean-Baptiste Bellet
f5e7738c78
Introduce relaxed, regular and condensed button for specify height
2023-08-18 09:46:56 +02:00
Jean-Baptiste Bellet
5de0d79ca2
Increase distance from search container to 136px
...
116px + 20px (gap) = 136px
2023-08-18 09:46:56 +02:00
Jean-Baptiste Bellet
4219d0aa08
Change font size and weight
2023-08-18 09:46:56 +02:00
Maikel Linke
0acdf5833f
Update all locales with the latest Transifex translations
v4.4.8
2023-08-18 15:54:00 +10:00
David Cook
01f0de2f4e
Merge pull request #11405 from macanudo527/fix_rubocop_rails_errors
...
Fix rubocop rails errors
2023-08-18 11:54:17 +10:00
David Cook
7a04f63d62
Merge pull request #11407 from jibees/10878-buu-pagination-tweaks
...
🚧 BUU: Pagination tweaks
2023-08-18 09:25:55 +10:00
jibees
e82ff80582
Merge pull request #11420 from openfoodfoundation/dependabot/bundler/newrelic_rpm-9.4.1
...
chore(deps): bump newrelic_rpm from 9.4.0 to 9.4.1
2023-08-17 13:46:47 +02:00
dependabot[bot]
47ca35c38e
chore(deps): bump newrelic_rpm from 9.4.0 to 9.4.1
...
Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent ) from 9.4.0 to 9.4.1.
- [Release notes](https://github.com/newrelic/newrelic-ruby-agent/releases )
- [Changelog](https://github.com/newrelic/newrelic-ruby-agent/blob/dev/CHANGELOG.md )
- [Commits](https://github.com/newrelic/newrelic-ruby-agent/compare/9.4.0...9.4.1 )
---
updated-dependencies:
- dependency-name: newrelic_rpm
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-08-17 09:28:40 +00:00
Neal Chambers
fe5288c015
Update .rubocop_todo.yml
2023-08-17 16:45:52 +09:00
Neal Chambers
3c9afcf360
Fix Rails/CompactBlank
2023-08-17 16:43:13 +09:00
Neal Chambers
871a8e6f2c
Fix Rails/Blank
2023-08-17 16:42:46 +09:00
Neal Chambers
b78bbd2629
Fix Rails/ApplicationController
2023-08-17 16:42:41 +09:00
Jean-Baptiste Bellet
fa4dda9976
Finally, remove disabled rule that is unused
...
We only display active link
2023-08-17 09:26:10 +02:00
Jean-Baptiste Bellet
394e964b91
Specify for element that have href attr: the ones we want to hover
2023-08-17 09:26:10 +02:00
Jean-Baptiste Bellet
e7d36ed772
Let link have the cursor: pointer by default, and specify only for current
2023-08-17 09:26:10 +02:00
Jean-Baptiste Bellet
2405dfdaa3
Refine and adjust position of icon in button
2023-08-17 09:26:10 +02:00
Jean-Baptiste Bellet
1a8a4ee72b
Change size of pagination
...
"it becomes extremely long for big catalogues"
2023-08-17 09:26:10 +02:00
Jean-Baptiste Bellet
66a106b1c9
hide pagination for single page catalogue
...
+ update specs then
2023-08-17 09:26:10 +02:00
Jean-Baptiste Bellet
3fb8726c6a
Do not display arrows if they're disabled
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
b1ea77e611
Remove white background from dots
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
c252de87b6
Specify cursor in order to not be text
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
5fc4f7bdaf
Design hover (like current)
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
9d8325c0d9
font weight to be 600
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
d914644c35
change not selected font color to $near-black, also for arrows
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
06af58e923
increase distance between arrows and numbers to be 36px
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
6e29dd95ef
Increase distance between numbers to be 8px
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
a2da3c2f61
Better management of margin/gap between each button with flex display
2023-08-17 09:06:26 +02:00
Jean-Baptiste Bellet
9396e75806
Increase padding top and padding bottom
2023-08-17 09:06:26 +02:00
Maikel
5762492511
Merge pull request #11392 from dacook/release-template
...
Release template
2023-08-17 16:47:49 +10:00
Maikel
6377149e18
Merge pull request #11400 from jibees/buu-update/refactor-tests
...
🚧 BUU: refactor/improve testing
2023-08-17 16:32:00 +10:00
David Cook
a854dccf04
Simplify tag steps
...
Co-authored-by: Maikel <maikel@email.org.au >
2023-08-17 16:09:06 +10:00
Maikel
d0559d2a6c
Merge pull request #11413 from openfoodfoundation/dependabot/bundler/newrelic_rpm-9.4.0
...
chore(deps): bump newrelic_rpm from 9.3.1 to 9.4.0
2023-08-17 15:36:28 +10:00