We've just released Solidus
One of the primary goals that drives the development of Solidus is allowing easy upgrades.
Easy upgrades allow teams that use Solidus to take advantage of the latest platform improvements, but it's equally crucial for faciliating community contribution: using a recent version of Solidus lets teams easily contribute to the platform. Due to this exchange, Solidus mirrors what's really needed by its users as closely as possible and the whole community benefits from new features and fixes.
v3.0 is a release that respects this mindset. In fact, Solidus
v3.0 is nearly identical to the last
with the only difference that the new one doesn't have the code that we deprecated during the
v2.x lifecycle: if
you don't see deprecation messages in your application logs, you should be good to upgrade your store with minimal effort.
Despite the easy upgrade path, there are some relevant things to consider when upgrading:
We do not require all of Rails by default anymore
rails/all, Solidus was loading a bunch of unnecessary code that was probably consuming more memory than necessary.
This change only loads what's strictly needed and allows stores that want to cherry-pick certain parts of Rails to benefit from the more
Active Storage by Default
v2.11 and Solidus
v3.0 come with full support for Rails
5.2. With Solidus
v3.0 as default on new stores,
we ship fully working
Active Storage support. In future versions, we will remove the
Paperclip dependency because
Active Storage is
becoming the new standard for Rails developers.
This change won't impact your existing store as long as you keep using
Paperclip as the attachment module with:
Spree::Config.image_attachment_module = 'Spree::Image::PaperclipAttachment' Spree::Config.taxon_attachment_module = 'Spree::Taxon::PaperclipAttachment'
We finally completed the heroic work started by John Hawthorn to remove
paranoia and introduce a new gem for
soft-deleting records. This gem is called discard and provides a more explicit interface when dealing
with record deletion. After a deprecation cycle, this is now the only supported way to soft-delete records in the codebase. No more surprises when deleting or destroying records!
Unified Name in Address
We removed all usage of split
lastname for addresses since
this concept is not valid in all cultures around the world.
Now we have a single field in the system called
In the last version of Solidus in the
v2.x series, we added the
name attribute to the database and started to populate it with the
lastname. We also provided a rake task to populate the
name field for existing records, in order to
make the database consistent, and ready to switch
true, which will be
the only supported value in Solidus
We suggest migrating to this new schema before the upgrade to
v3.0. You can follow this approach:
- Upgrade to the latest
- Run the dedicated rake task
bin/rails solidus:upgrade:two_point_eleventhat will migrate the address fields
- Switch the
This process will make your application behave exactly as it will with
v3.0, which only removes the support for that preference being
We removed some preferences that were controlling deprecated behaviors. You probably already changed their value to remove the deprecations from your logs but when upgrading, be sure they are not used in your codebase since they do not exist anymore. They are:
Please take a look at the CHANGELOG for a detailed list of changes.
Thanks to all code contributors that made Pull Requests during the 2.x lifecycle, especially to John Hawthorn and the rest of what was the Stembolt team.
Thanks to all financial contributors that help the ecosystem supporting the development of Solidus and its community via our Open Collective page.
This release couldn't be possible without you all!