v3.2.0
What's Changed
- Remove deprecated name-related Address fields by @filippoliverani in #3820
- Remove awesome_nested_set override for Rails 6.1 compatibility by @kennyadsl in #3893
- Load ActionMailer previews lazily by @aldesantis in #3900
- Lock money gem in development until next release by @kennyadsl in #3909
- Move Spree::Address#name attribute to the db by @filippoliverani in #3908
- Show 'guest' correctly in order customer details by @nirebu in #3910
- [Admin] Automatically check edited return items in RMA form by @spaghetticode in #3904
- Fix ActionMailer preview loading by @aldesantis in #3901
- Convert jQuery data attribute to number by @spaghetticode in #3899
- Remove all code deprecated in Solidus v2.x by @kennyadsl in #3818
- Discard Paranoia by @cedum in #3488
- Migrate default billing addresses to address book by @mamhoff in #3838
- Set dummy app forgery protection to false by @FrancescoAiello01 in #3887
- Enable ActiveStorage specs against Rails 6.1 by @kennyadsl in #3886
- Pre-select current tax category on product form by @spaghetticode in #3936
- Align Rubocop ruby version to gemspec by @spaghetticode in #3935
- Skip adding webpacker gem when generating dummyapp by @SamuelMartini in #3922
- allow customize database credentials for test app by @ccarruitero in #3921
- Avoid too many prompts during solidus:install generator by @kennyadsl in #3937
- Install Active Storage by default on new stores by @kennyadsl in #3938
- Fix factory loading by @elia in #3907
- Only use #original_message in Api::BaseController#parameter_missing_error if defined by @dividedharmony in #3940
- Allow users to create blank issues in GitHub by @kennyadsl in #3943
- Bump redcarpet from 3.4.0 to 3.5.1 in /guides by @dependabot in #3890
- Remove Deprecation Warning in ActiveModel Errors by @Azeem838 in #3946
- Add English variants to select2_local directory by @michaelmichael in #3895
- Fix circular reference in factory by @waiting-for-dev in #3959
- Inline the attachment form for taxon icons by @elia in #3932
- Relax Money dependency in development by @kennyadsl in #3958
- Remove deprecated attachment_partial_name by @kennyadsl in #3974
- Switch to maintained Paperclip fork by @filippoliverani in #3913
- Improve Active Storage configuration for in-memory Dummy App by @kennyadsl in #3970
- Add Active Storage in Dummy App for extensions by @kennyadsl in #3969
- Add Address name data migration rake task by @spaghetticode in #3933
- Bump elliptic from 6.5.3 to 6.5.4 in /guides by @dependabot in #3981
- Improve address name migration task output by @kennyadsl in #3982
- Fix for incorrect deprecation class by @tmtrademarked in #3991
- Allow accessing preferences on models that do not have any set by @kennyadsl in #3998
- Use Spree.user_class instead of Spree::LegacyUser in production code by @mamhoff in #3995
- Add Post-Install message to Solidus 3.0 by @kennyadsl in #3985
- Include Preference Handling as a Module by @mamhoff in #4015
- Bump y18n from 3.2.1 to 3.2.2 in /guides by @dependabot in #4016
- DRY-up BogusCreditCard model and remove invasive refund spec stub by @spaghetticode in #4002
- Only run spring stop in install generator if spring is available by @Noah-Silvera in #3999
- Switch to the correct ActiveStorage variant syntax by @filippoliverani in #4003
- Bump removal horizon for 3.x deprecations by @kennyadsl in #4025
- Image attachment content type validation fix for ActiveStorage by @cpfergus1 in #4021
- Rescue FileNotFoundError exception on failed image downloads by @cpfergus1 in #4026
- Add CHANGELOG entries for 2.11.x and 3.0 by @kennyadsl in #3975
- Master now tracks 3.1.0 by @kennyadsl in #4033
- Improve Solidus events documentation by @spaghetticode in #3819
- Use more appropriate language for woman's t-shirt in sample data by @Noah-Silvera in #4031
- Let the PriceSelector return a Spree::Price by @swively in #3925
- Update order_tabs Order number format by @brchristian in #3835
- eager load records instead of n+1 for update_positions by @BenMorganIO in #3875
- Allow Variant to check stock by stock_location by @MadelineCollier in #3884
- Fix order checkout flow completion with custom steps by @nerfologist in #3950
- Don't hack into ActionMailer to add our mail previews path by @elia in #3961
- Allow customer returns to reference existing
ReturnItem
s on create through API by @forkata in #4007 - Consolidation of promotion code batch form fields into partial. by @cpfergus1 in #3957
- Promotion rule product limit improvements by @nirnaeth in #3934
- Normalize email required checks by @elia in #3879
- Moving API attribute helpers to API config by @snada in #4039
- Improve Customizing Attributes documentation by @dhughesbc in #3979
- Fix solidus stock locations sorting by @ikraamg in #3954
- Add docker-compose development environment by @waiting-for-dev in #3947
- Improve the extensibility of Rules::ItemTotal by @elia in #3431
- Handle permalink attribute on product create by @nandita2010 in #4024
- Review install instructions in README and Guides by @kennyadsl in #4034
- Load defaults for the latest Rails minor version in the dummy app by @waiting-for-dev in #4035
- Use symbols in polymorphic path for event_links by @tvdeyen in #4048
- Bump lodash from 4.17.19 to 4.17.21 in /guides by @dependabot in #4051
- Bump hosted-git-info from 2.7.1 to 2.8.9 in /guides by @dependabot in #4053
- Fix links in CHANGELOG.md by @bogdanvlviv in #4057
- Fix "Cancel" URL link on reimbursement edit page by @spaghetticode in #4061
- [ADMIN] Properly format flash error message by @spaghetticode in #3996
- Unhardcode admin base url in 'stock_location_stock_item' template by @ok32 in #4063
- Add UUID to StoreCredit#generate_authorization_code by @spaghetticode in #4060
- Fix customer return validation for return items without inventory units by @willianveiga in #4068
- Update the Nebulab's logo on README.md by @mfrecchiami in #4079
- Support Ruby 3 by @waiting-for-dev in #4072
- Fix detecting exec js version by adding minimal requirement for autoprefixer-rails by @waiting-for-dev in #4077
- Permit return_items_attributes return_reason_id by @spaghetticode in #4080
- Fix Spree::Promotion.has_actions scope by @mamhoff in #4056
- Move currently_valid_prices to a method by @waiting-for-dev in #4073
- Fix Request Bodies in API Documentation by @kennyadsl in #4066
- Small English correction on Payments overview PSP doc by @cesartalves in #4088
- Deprecate callback setting variant price from master by @waiting-for-dev in #4078
- Fix the dark mode issue with the logo on README.md by @mfrecchiami in #4093
- Add an HTML select element to filter orders by the shipment state by @willianveiga in #4089
- Update defaults in dummy application by @waiting-for-dev in #4047
- Allow using different preference defaults depending on a Solidus version by @waiting-for-dev in #4064
- Add preferences to configure product and taxon images style by @cpfergus1 in #4062
- Remove staled comment by @waiting-for-dev in #4100
- Make clearer default answer in prompt by @waiting-for-dev in #4101
- Simplify
Variant#default_price
logic by @waiting-for-dev in #4076 - Fix broken URL in customer-flow guide by @RyanofWoods in #4096
- Fix admin portugues locale by @ruipbarata in #4107
- Fix flaky product feature spec by @gsmendoza in #4118
- Disable perform_caching in DummyApp by @gsmendoza in #4119
- Shipment Setup Examples documentation - small correction to the amount of shipping categories needed by @cesartalves in #4115
- Move frontend locale_controller_spec to correct directory by @RyanofWoods in #4127
- Refactor frontend and backend locale_controllers by @RyanofWoods in #4126
- Document REST API filtering with Ransack by @kennyadsl in #4128
- Exclude canceled orders in the #usage_count of promotions and promotion codes by @ikraamg in #4123
- Document REST API params to control nested taxons by @kennyadsl in #4131
- Bump addressable from 2.5.2 to 2.8.0 in /guides by @dependabot in #4129
- Revert "Deprecate callback setting variant price from master" by @waiting-for-dev in #4132
- Fix Ransack error when searching for orders by customer name by @aldesantis in #4135
- Remove unused
ShippingRateTaxer
service object by @aldesantis in #4136 - Guides typo corrections by @cesartalves in #4120
- Docker: Change public keys server after deprecation by @waiting-for-dev in #4140
- Bump tar from 2.2.1 to 2.2.2 in /guides by @dependabot in #4142
- Make order-related service objects configurable by @aldesantis in #4138
- Introduce Solidus update process by @waiting-for-dev in #4087
- Hide the master variants from stock management by @tmtrademarked in #4155
- Fix displaying of discarded variants in admin by @luca-landa in #4148
- Fix small typo in the 'customizing permissions' guide by @nerfologist in #4147
- Do not allow prices with nil amount by @waiting-for-dev in #3987
- Remove Pending Request Spec: Api Admin update payment state expectations. by @jcowhigjr in #4149
- Fix gateway_error when no order is defined by @alexblackie in #4156
- Remove the upgrade task and point to additional steps from the update generator by @waiting-for-dev in #4157
- Bump docker image's version to v3.1.0 by @waiting-for-dev in #4160
- Prepare CHANGELOG for Solidus 3.1 release by @waiting-for-dev in #4144
- Get Solidus ready for 3.2 by @kennyadsl in #4162
- Fix shipping_method_spec test flakiness by @DianeLooney in #4169
- Fix staled upgrade instructions on the Gemfile's post-install message by @waiting-for-dev in #4166
- Respect completed_at timestamp in order factories by @DianeLooney in #4168
- Fix searching deleted products by SKU by @adammathys in #4164
- Add deprecation path for arity-zero preference defaults by @waiting-for-dev in #4170
- Update install templates to use jquery3 (vulnerability fix) by @cpfergus1 in #4167
- Clean request specs by @biximilien in #4158
- Introduce new EventBus adapter by @waiting-for-dev in #4130
- Change application-template generation script to use main branch by @kennyadsl in #4163
- Centralize legacy event bus deprecation and test legacy on CI by @waiting-for-dev in #4176
- Fix loading core on Rails < 6.1 by @waiting-for-dev in #4179
- [Doc] Good commit message link fixed by @shubham9411 in #4186
- Introduce a configuration value for
migration_path
by @forkata in #4190 - Fix typo in Payments Overview guide by @nerfologist in #4195
- List order customer returns only once by @spaghetticode in #4196
- A couple of small fixes by @elia in #4205
- Use SSL on fonts.googleapis.com scss import by @RyanofWoods in #4209
- Enable rubygems_mfa_required on solidus by @gsmendoza in #4206
- Adds observability to the new event bus by @waiting-for-dev in #4203
- Update warning with copy/pastable code by @peterberkenbosch in #4215
- Make minor improvements to the "Payments" developer guides by @benjaminwil in #4208
- Make display_price optional on admin variants list by @luca-landa in #4213
- Use default spree event adapter by @peterberkenbosch in #4216
- Add stubbing test helpers for the event bus by @waiting-for-dev in #4214
- Introduce Spree::Event's test interface to run only selected listeners by @waiting-for-dev in #4204
- Add filter and pagination to tax rates admin view by @tvdeyen in #4222
- Adds the missing en-CA localization for the select2 dropdown in admin by @jzisser9 in #4223
- Reintroduce inverse_of: :product for variants association by @spaghetticode in #4227
- Ensure promotion codes don't trigger ActiveRecord::RecordNotUnique errors on save by @jcsanti in #4228
- Accept nested addresses attributes for User by @kennyadsl in #4229
- Enforce event registration by @waiting-for-dev in #4226
- Stop generating code to autoload overrides by @waiting-for-dev in #4231
- Documentation fixes by @nbelzer in #4241
- Bump follow-redirects from 1.13.1 to 1.14.7 in /guides by @dependabot in #4242
- Bump axios from 0.21.1 to 0.21.2 in /guides by @dependabot in #4171
- Admin users did not work with custom user models by @softr8 in #4238
- Cosmetic changes to the unknown event message by @waiting-for-dev in #4246
- Fix product prices table pagination by @tvdeyen in #4243
- [Admin] Fix permission checks on some links by @spaghetticode in #4244
- Fix tests after two conflicting merges by @waiting-for-dev in #4249
- Fix: solidus:install adds the frontend assets even if the repo does not have solidus_frontend by @gsmendoza in #4251
- Add public interface to fetch registered events by @waiting-for-dev in #4252
- Update contributor logo on README.md by @mfrecchiami in #4257
- Update the Super Good logo by @jarednorman in #4258
- Relax Factory Bot version constraint by @jarednorman in #4255
- Fix test assertion due to staled cache by @waiting-for-dev in #4259
- Deprecate public visibility of order#finalize! by @waiting-for-dev in #4260
- Incorrect display store credit reason by @nbelzer in #4268
- Bump follow-redirects from 1.14.7 to 1.14.8 in /guides by @dependabot in #4269
- Use Variant Searcher for Autocomplete by @adammathys in #4197
- Replace expired GPG key for mysql install in dev Dockerfile by @nemeth in #4274
- Update API docs link to point to the new domain by @kennyadsl in #4279
- Fix for advancing carts correctly in admin checkout by @tmtrademarked in #4253
- Fix n+1 possibilities in Promotion#blacklisted? by @mamhoff in #4275
- OrderContents: Initialize line item with empty adjustments by @mamhoff in #4286
- Product Promotion Rule: Use in-memory objects by @mamhoff in #4282
- Remove n+1 in Spree::Tax::TaxLocation class by @mamhoff in #4280
- Admin permission fixes by @spaghetticode in #4276
- Fix order create permissions by @spaghetticode in #4261
- Add additional info for developers in docker logs by @Palid in #4288
- Promotion Rule CreateItemAdjustments: Use in-memory objects by @mamhoff in #4285
- Deprecate Spree::PromotionRule.for by @mamhoff in #4284
- Allow OrderWalkThrough to take a user by @mamhoff in #4292
- Check for existence of
product_path
instead ofSpree::Frontend::Engine
by @gsmendoza in #4278 - Fix(OrderMerger): Do not carry line item adjustments to new order by @mamhoff in #4290
- fix backbone shipment item view when split by @ccarruitero in #4250
- Removes Stoplight API docu auto build orb. by @wintermeyer in #4311
- Fix flaky spec for Spree::ShippingMethod#available_to_store by @mamhoff in #4313
- Bump minimist from 1.2.0 to 1.2.6 in /guides by @dependabot in #4314
- Fix:
extension:test_app
rake task should detect if Solidus engines are available by @gsmendoza in #4302 - Update customizing-assets.html.md by @mapreal19 in #4312
- Allow kt-paperclip v7 by @tvdeyen in #4310
- OrderInventory: Use variant stock items by @mamhoff in #4303
- Fixes using ActiveStorage adapter with libvips as variant processor by @waiting-for-dev in #4317
- feat(Variants Form): Add some visual structure by @tvdeyen in #4323
- Fix admin variants table UX by @tvdeyen in #4322
- Fix install generator on namespaced extensions by @nvandoorn in #4327
- Fixes defining thumbnail sizes through ActiveStorage adapter by @waiting-for-dev in #4318
- Optimize Spree::PromotionHandler::Cart by @mamhoff in #4281
- Refactor Stock Quantifier to use Enumerable by @mamhoff in #4291
- Refactor promotion usage counts by @mamhoff in #4307
- Add Rails 7 support by @peterberkenbosch in #4220
- Respect new preloader API in Rails 7 by @mamhoff in #4338
- Remove deprecated_address_id column from shipments by @mamhoff in #4333
- Bugfix: Changing Default Addresses by @mamhoff in #4332
- Authorize uuid for existing object in sortable table by @julienanne in #4287
- Deprecate Promotion
any
Match Policy by @mamhoff in #4304 - Fix creating refund with amount in foreign format by @tvdeyen in #4344
- Update in-memory shipments of order in order_shipping by @tvdeyen in #4334
- Enhance refund admin UI by @tvdeyen in #4348
- Make more room for long values in Order Summary by @tvdeyen in #4352
- Readd
config.cache_classes
on test env and removewith_model
dep by @waiting-for-dev in #4358 - Support for Ruby 3.1 by @waiting-for-dev in #4366
- Revert "Remove deprecated_address_id column from shipments" by @waiting-for-dev in #4377
- Fix update generator taking non-comparable values as changes in a default by @waiting-for-dev in #4375
- Add flexibility to
Spree::Order#restart_checkout_flow
by @spaghetticode in #4369 - Use Omnes for pub/sub by @waiting-for-dev in #4342
- Fix issues loading serialized logs by @waiting-for-dev in #4376
- Add missing sprockets-rails dependency by @waiting-for-dev in #4382
- Deprecate dangling option_values and duplicated routes by @waiting-for-dev in #4385
- Deprecate duplicated variant routes by @waiting-for-dev in #4388
- Deprecate creating new shipment with an item via API by @kennyadsl in #4387
- Allow user stock locations to be deleted by @rmparr in #4389
- Fix creating store credit with amount in foreign format by @tvdeyen in #4390
- Make API docs deprecation warnings consistent by @waiting-for-dev in #4397
- Remove unutilized coffee-rails dependency by @cpfergus1 in #4405
- Only install ActiveStorage adapter on supported Rails versions by @tvdeyen in #4402
- Fix discarded duplicated products bug by @Azeem838 in #4189
- Improve payment service providers switching errors by @luca-landa in #3837
- Update image settings documentation by @nbelzer in #4245
- Fix: common:test_app should change Rails.env to test by @gsmendoza in #4411
- Fix option_values nested attributes behavior on the API by @waiting-for-dev in #4409
- Update README.md chromedriver link by @Palid in #4294
- Fix deprecation of active payment methods by @waiting-for-dev in #4414
- Skip failing test because of unsupported feature on Rails < 6.1 by @waiting-for-dev in #4432
- Add tax_category_id to variant's permitted attributes by @waiting-for-dev in #4406
- Fail with
raise
when the storage adapter is not supported by @waiting-for-dev in #4434 - Remove N+1 from admin users by @tvdeyen in #4419
- Fix delete response in admin users controller by @tvdeyen in #4415
- Add display shipment total before tax by @mamhoff in #4423
- Update CircleCI configuration by @waiting-for-dev in #4435
- Fix Order#tax_address method by @spaghetticode in #4429
- Adds conditional validation to
ReturnItem
by @Brian-Demon in #4121 - Add global Spree::Config.default_email_regexp by @cesartalves in #4022
- Refactor and add specs to stock locations helper by @gabrielbaldao in #3827
- Deprecate try_spree_current_user by @elia in #3923
- Deprecate Ruby 2.5 & Ruby 2.6 by @waiting-for-dev in #4442
- Deprecate Rails 5.2 by @waiting-for-dev in #4439
- Deprecate SolidusFrontend by @gsmendoza in #4320
- Make more stock classes configurable by @jarednorman in #4395
- Support CVE-2022-32224 Rails security updates by @gsmendoza in #4451
- Support code reloading when configuring static preferences sources by @waiting-for-dev in #4449
- Recalculate promotions after destroying/refreshing shipments by @spaghetticode in #4172
- Fix stores with no authentication by @waiting-for-dev in #4456
- Move legacy guides to a separate repository by @aldesantis in #4459
- Fix incorrect validation message for missing store credit category by @johnpitchko in #4481
- Fix expectations about solidus_auth_devise order in the Gemfile by @waiting-for-dev in #4465
- Allow to extend user deletion logic by @tvdeyen in #4471
- Add basic support for order-level taxes by @adammathys in #4477
- Provide support to fix locale selection in admin login page by @gsmendoza in #4493
- Remove PayPal as an option during the installation process by @waiting-for-dev in #4494
- Include discarded prices in delete_prices_with_nil_amount task by @spaghetticode in #4495
- Add explicit information about DB_* env variables to the README by @chrean in #4461
- Switch orders name search to use contains instead of starts with by @sbader in #4496
- Deprecate solidus_frontend & allow installing solidus_starter_frontend by @waiting-for-dev in #4490
- Remove frontend directory by @waiting-for-dev in #4497
- Tweaks for the Solidus installer by @waiting-for-dev in #4504
- Sanitize i18n keys using i18n-tasks gem issue: #3978 by @waiting-for-dev in #4437
- Translate price country names by @tvdeyen in #4508
- Run auth generator when starter frontend installs the gem by @waiting-for-dev in #4511
- Fix key in the locale file by @waiting-for-dev in #4512
- Prepare Changelog for v3.2 by @waiting-for-dev in #4516
- Update previous minor version by @waiting-for-dev in #4517
New Contributors
- @nirebu made their first contribution in #3910
- @FrancescoAiello01 made their first contribution in #3887
- @Azeem838 made their first contribution in #3946
- @cpfergus1 made their first contribution in #4021
- @nerfologist made their first contribution in #3950
- @forkata made their first contribution in #4007
- @nirnaeth made their first contribution in #3934
- @snada made their first contribution in #4039
- @dhughesbc made their first contribution in #3979
- @nandita2010 made their first contribution in #4024
- @willianveiga made their first contribution in #4068
- @cesartalves made their first contribution in #4088
- @ruipbarata made their first contribution in #4107
- @luca-landa made their first contribution in #4148
- @jcowhigjr made their first contribution in #4149
- @biximilien made their first contribution in #4158
- @shubham9411 made their first contribution in #4186
- @jzisser9 made their first contribution in #4223
- @nemeth made their first contribution in #4274
- @Palid made their first contribution in #4288
- @wintermeyer made their first contribution in #4311
- @mapreal19 made their first contribution in #4312
- @nvandoorn made their first contribution in #4327
- @Brian-Demon made their first contribution in #4121
- @gabrielbaldao made their first contribution in #3827
- @johnpitchko made their first contribution in #4481
- @chrean made their first contribution in #4461
- @sbader made their first contribution in #4496
Full Changelog: v3.1.0...v3.2.0