spree_core 6.0.0.rc7 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/app/jobs/spree/maintenance_tasks/run_job.rb +321 -0
  3. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/backfill_order_markets.rb +48 -0
  4. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/capture_methods.rb +40 -0
  5. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/deliveries.rb +15 -0
  6. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/order_coupon_codes.rb +15 -0
  7. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/promotion_option_value_rules.rb +15 -0
  8. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/rake_step.rb +83 -0
  9. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/returns.rb +20 -0
  10. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade/users_to_customers.rb +28 -0
  11. data/app/maintenance_tasks/spree/maintenance_tasks/upgrade_step.rb +44 -0
  12. data/app/models/spree/ability.rb +9 -0
  13. data/app/models/spree/maintenance_task.rb +221 -0
  14. data/app/models/spree/maintenance_task_run.rb +78 -0
  15. data/app/models/spree/upgrade_record.rb +62 -0
  16. data/app/services/spree/maintenance_tasks/argument_parser.rb +23 -0
  17. data/app/services/spree/maintenance_tasks/cancel.rb +51 -0
  18. data/app/services/spree/maintenance_tasks/start.rb +127 -0
  19. data/app/services/spree/seeds/all.rb +22 -0
  20. data/config/locales/en.yml +1 -0
  21. data/db/migrate/20260813130001_add_capture_method_to_payment_methods.rb +1 -1
  22. data/db/migrate/20260815000001_create_spree_maintenance_task_runs.rb +40 -0
  23. data/db/migrate/20260816000001_create_spree_upgrade_records.rb +17 -0
  24. data/lib/generators/spree/api_resource/api_resource_generator.rb +2 -2
  25. data/lib/spree/core/configuration.rb +6 -0
  26. data/lib/spree/core/engine.rb +10 -1
  27. data/lib/spree/core/permissions/default_catalog.rb +7 -0
  28. data/lib/spree/core/version.rb +1 -1
  29. data/lib/spree/core.rb +16 -1
  30. data/lib/spree/testing_support/factories/maintenance_task_run_factory.rb +7 -0
  31. data/lib/spree/upgrade.rb +189 -0
  32. data/lib/spree/upgrades/5_6_to_6_0/manifest.yml +17 -10
  33. data/lib/tasks/maintenance_tasks.rake +42 -0
  34. data/lib/tasks/upgrade.rake +81 -60
  35. metadata +25 -6
  36. data/lib/tasks/capture_methods_migration.rake +0 -30
  37. data/lib/tasks/order_market_backfill.rake +0 -27
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0.rc7
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-10-26 00:00:00.000000000 Z
13
+ date: 2026-10-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: i18n-tasks
@@ -745,6 +745,7 @@ files:
745
745
  - app/jobs/spree/imports/process_group_job.rb
746
746
  - app/jobs/spree/imports/process_job.rb
747
747
  - app/jobs/spree/imports/process_rows_job.rb
748
+ - app/jobs/spree/maintenance_tasks/run_job.rb
748
749
  - app/jobs/spree/orders/finalize_stale_drafts_job.rb
749
750
  - app/jobs/spree/payments/cancel_unused_sessions_job.rb
750
751
  - app/jobs/spree/payments/handle_webhook_job.rb
@@ -777,6 +778,15 @@ files:
777
778
  - app/mailers/spree/invitation_mailer.rb
778
779
  - app/mailers/spree/seller_user_mailer.rb
779
780
  - app/mailers/spree/webhook_mailer.rb
781
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/backfill_order_markets.rb
782
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/capture_methods.rb
783
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/deliveries.rb
784
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/order_coupon_codes.rb
785
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/promotion_option_value_rules.rb
786
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/rake_step.rb
787
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/returns.rb
788
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade/users_to_customers.rb
789
+ - app/maintenance_tasks/spree/maintenance_tasks/upgrade_step.rb
780
790
  - app/models/concerns/spree/account_deactivation.rb
781
791
  - app/models/concerns/spree/account_lockout.rb
782
792
  - app/models/concerns/spree/acted_by.rb
@@ -1064,6 +1074,8 @@ files:
1064
1074
  - app/models/spree/label_purchase.rb
1065
1075
  - app/models/spree/line_item.rb
1066
1076
  - app/models/spree/locale.rb
1077
+ - app/models/spree/maintenance_task.rb
1078
+ - app/models/spree/maintenance_task_run.rb
1067
1079
  - app/models/spree/market.rb
1068
1080
  - app/models/spree/market_country.rb
1069
1081
  - app/models/spree/media.rb
@@ -1291,6 +1303,7 @@ files:
1291
1303
  - app/models/spree/taxonomy.rb
1292
1304
  - app/models/spree/translations/batch.rb
1293
1305
  - app/models/spree/update_status.rb
1306
+ - app/models/spree/upgrade_record.rb
1294
1307
  - app/models/spree/user_identity.rb
1295
1308
  - app/models/spree/variant.rb
1296
1309
  - app/models/spree/variant_media.rb
@@ -1389,6 +1402,9 @@ files:
1389
1402
  - app/services/spree/imports/row_processors/purchase_order.rb
1390
1403
  - app/services/spree/locales.rb
1391
1404
  - app/services/spree/locales/set_fallback_locale_for_store.rb
1405
+ - app/services/spree/maintenance_tasks/argument_parser.rb
1406
+ - app/services/spree/maintenance_tasks/cancel.rb
1407
+ - app/services/spree/maintenance_tasks/start.rb
1392
1408
  - app/services/spree/media/destroy.rb
1393
1409
  - app/services/spree/media/usage.rb
1394
1410
  - app/services/spree/newsletter/link_user.rb
@@ -1931,8 +1947,10 @@ files:
1931
1947
  - db/migrate/20260814000001_rename_stock_items_to_stock_levels.rb
1932
1948
  - db/migrate/20260814000002_add_typed_stock_movements.rb
1933
1949
  - db/migrate/20260815000001_add_audience_to_spree_refresh_tokens.rb
1950
+ - db/migrate/20260815000001_create_spree_maintenance_task_runs.rb
1934
1951
  - db/migrate/20260815000002_add_resource_to_spree_roles.rb
1935
1952
  - db/migrate/20260816000001_create_spree_sellers.rb
1953
+ - db/migrate/20260816000001_create_spree_upgrade_records.rb
1936
1954
  - db/migrate/20260816000002_add_seller_to_spree_products.rb
1937
1955
  - db/migrate/20260816210001_create_spree_commission_rates.rb
1938
1956
  - db/migrate/20260816210002_create_spree_commission_lines.rb
@@ -2198,6 +2216,7 @@ files:
2198
2216
  - lib/spree/testing_support/factories/integration_factory.rb
2199
2217
  - lib/spree/testing_support/factories/invitation_factory.rb
2200
2218
  - lib/spree/testing_support/factories/line_item_factory.rb
2219
+ - lib/spree/testing_support/factories/maintenance_task_run_factory.rb
2201
2220
  - lib/spree/testing_support/factories/market_factory.rb
2202
2221
  - lib/spree/testing_support/factories/media_factory.rb
2203
2222
  - lib/spree/testing_support/factories/newsletter_subscriber_factory.rb
@@ -2294,6 +2313,7 @@ files:
2294
2313
  - lib/spree/testing_support/tax_identifier_validators.rb
2295
2314
  - lib/spree/testing_support/url_helpers.rb
2296
2315
  - lib/spree/translations.rb
2316
+ - lib/spree/upgrade.rb
2297
2317
  - lib/spree/upgrades/5_4_to_5_5/manifest.yml
2298
2318
  - lib/spree/upgrades/5_5_to_5_6/manifest.yml
2299
2319
  - lib/spree/upgrades/5_6_to_6_0/manifest.yml
@@ -2308,7 +2328,6 @@ files:
2308
2328
  - lib/tasks/backfill_media_store_ids.rake
2309
2329
  - lib/tasks/backfill_reason_store_ids.rake
2310
2330
  - lib/tasks/backfill_tagging_tenants.rake
2311
- - lib/tasks/capture_methods_migration.rake
2312
2331
  - lib/tasks/carts_migration.rake
2313
2332
  - lib/tasks/categories_and_collections.rake
2314
2333
  - lib/tasks/channels.rake
@@ -2323,6 +2342,7 @@ files:
2323
2342
  - lib/tasks/fold_store_credit_categories.rake
2324
2343
  - lib/tasks/fulfillment_statuses_migration.rake
2325
2344
  - lib/tasks/inventory_operations_migration.rake
2345
+ - lib/tasks/maintenance_tasks.rake
2326
2346
  - lib/tasks/markets.rake
2327
2347
  - lib/tasks/media.rake
2328
2348
  - lib/tasks/media_class_rename.rake
@@ -2333,7 +2353,6 @@ files:
2333
2353
  - lib/tasks/migrate_users_to_customers.rake
2334
2354
  - lib/tasks/money.rake
2335
2355
  - lib/tasks/order_coupon_code_backfill.rake
2336
- - lib/tasks/order_market_backfill.rake
2337
2356
  - lib/tasks/package_types.rake
2338
2357
  - lib/tasks/preferences_json.rake
2339
2358
  - lib/tasks/price_history.rake
@@ -2378,9 +2397,9 @@ licenses:
2378
2397
  - BSD-3-Clause
2379
2398
  metadata:
2380
2399
  bug_tracker_uri: https://github.com/spree/spree/issues
2381
- changelog_uri: https://github.com/spree/spree/releases/tag/v6.0.0.rc7
2400
+ changelog_uri: https://github.com/spree/spree/releases/tag/v6.0.0
2382
2401
  documentation_uri: https://docs.spreecommerce.org/
2383
- source_code_uri: https://github.com/spree/spree/tree/v6.0.0.rc7
2402
+ source_code_uri: https://github.com/spree/spree/tree/v6.0.0
2384
2403
  post_install_message:
2385
2404
  rdoc_options: []
2386
2405
  require_paths:
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # 5.6 → 6.0 conversion of the per-payment-method auto_capture boolean onto the
4
- # capture_method vocabulary (docs/plans/6.0-store-scoped-configuration.md).
5
- # Idempotent — it only writes rows whose capture_method is still empty, so a
6
- # second run finds nothing to do and an interrupted run resumes for free.
7
- namespace :spree do
8
- desc 'Convert payment method auto_capture booleans into capture_method values'
9
- task migrate_capture_methods: :environment do
10
- batch_size = ENV.fetch('BATCH_SIZE', 5_000).to_i
11
- say = ->(message) { puts message }
12
-
13
- payment_methods = Spree::PaymentMethod.unscoped.where(capture_method: nil)
14
-
15
- # A method that captured on authorization charges at checkout. One that did
16
- # not only recorded "not at checkout" — the old column could not say
17
- # whether dispatch or staff was meant to take the money, and the store's
18
- # own setting is what decided. Leaving those rows empty is what makes them
19
- # keep inheriting it, so only the true case is written here.
20
- count = payment_methods.where(auto_capture: true).
21
- in_batches(of: batch_size).
22
- update_all(capture_method: 'checkout')
23
- say.call "spree_payment_methods.capture_method: #{count} rows auto_capture → checkout"
24
-
25
- remaining = Spree::PaymentMethod.unscoped.where(capture_method: nil, auto_capture: false).count
26
- say.call "spree_payment_methods.capture_method: #{remaining} rows left inheriting the store setting"
27
-
28
- say.call 'migrate_capture_methods done.'
29
- end
30
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # 5.6 → 6.0: market is mandatory on orders in Spree 6. Orders created before
4
- # markets existed carry NULLs — backfill from the store's default market so
5
- # the 6.1 NOT NULL constraint can land. (channel_id has no equivalent task
6
- # here: the 5.4→5.5 manifest's spree:channels:backfill_order_channel_ids
7
- # already covers it on every upgrade path.)
8
- namespace :spree do
9
- desc 'Backfill missing market on orders from the store default market'
10
- task backfill_order_markets: :environment do
11
- batch_size = ENV.fetch('BATCH_SIZE', 5_000).to_i
12
-
13
- Spree::Store.all.find_each do |store|
14
- market_id = store.default_market&.id
15
-
16
- if market_id
17
- count = Spree::Order.unscoped.where(store_id: store.id, market_id: nil).
18
- in_batches(of: batch_size).update_all(market_id: market_id)
19
- puts "store #{store.code}: #{count} orders assigned market #{market_id}" if count.positive?
20
- else
21
- puts "store #{store.code}: no default market — orders left as-is"
22
- end
23
- end
24
-
25
- puts 'backfill_order_markets done. The NOT NULL constraint lands in 6.1.'
26
- end
27
- end