Changelog History
Page 5
-
v3.7.5 Changes
September 19, 2019 -
v3.7.4 Changes
August 06, 2019๐ This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen ๐
Core
- ๐ Fixes security issue CVE-2019-13574 3a5d2a9
- ๐ migrated from deprecated
chromedriver-helper
towebdrivers
gem
API v2
- ๐ Storefront Cart Remove Coupon Code endpoint will remove all applied coupon codes if the
coupon_code
parameter is blank
-
v3.7.3 Changes
May 14, 2019๐ This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen ๐
Core
- ๐ Fix problem with Invalid single-table inheritance type: Spree::Image 251b806
- ๐ Fix issue with prepending state_machine methods 0f4a6eb
- ๐ ItemTotal Promotion Rule: 'less than' eligibility error message fixed 3cc8563
API
- ๐ Fixed moving order state to delivery before shipping method update f6d3d93
Admin Panel
-
v3.7.2 Changes
April 09, 2019๐ This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen ๐
API
- โ Added API v2 Estimate Shipping Rates endpoint 020d692 65be188
- โ Added
show_deleted
andshow_discontinued
filters to API v2 Products endpoint 3e8bc1b e4a8614 7772737 - ๐ Cart Remove Coupon Code endpoint now works without the
coupon_code
parameter (removes first coupon code based promotion from the Cart)
Frontend
- ๐ fixed compatibility with Rails 5.2.3 1a54d8c
Backend
- ๐ security fix for CVE-2019-5418 7320f3a
Other
-
v3.7.1 Changes
March 01, 2019๐ This patch release contains bug fixes backported from master. We'd like to thank all the contributors who made this happen ๐
- ability to filter Products by SKUs in Storefront API v2 f49b90b
- ๐ fixed type for Taxon children in API v2 taxon serializer 12c0bc9
- โฌ๏ธ bumped
ffaker
to~> 2.9
eb49f12 - fixed some minor permissions checks in the Admin Panel (helpful if you're using Multi Vendor extension) 0a80361
- ๐ fixed Rails 5.2 development mode issues a7aac2f d2f9dc8 b7c7f08
- ๐ fixed sandbox generation with SQLite 3 71c3996 d113f6c
-
v3.7.0 Changes
February 04, 2019Major/New Features
๐ 3.7 release is our last 3.x line release bridging the gap between 3.x and Spree 4.0. This is a big release packed with several amazing features and a huge number of bug fixes (over 700 commits by 17 contributors!). Upgrading to 3.7 guarantees a smooth and easy migration to Spree 4.0 (April 2019 with Rails 6.0 support).
Spree 3.7 requires Rails 5.2.2 and Ruby 2.3.3 (or higher).
Storefront API v2
๐ We've worked hard over the last few months to deliver a completely new, easy to work with and lightweight REST API for building amazing customer interfaces with modern JavaScript libraries (React, Vue, Angular) and for native mobile apps. New Storefront API v2 is fast, easy to use and extend. It's also well documented in OpenAPI 3.0 (Swagger) format which you can import into Postman app.
New API is based on JSON API spec and uses blazing fast Netflix fast_json_api serializer library. Authentication is based on Oauth using doorkeeper library. Besides that there are no additional dependencies making it lightweight and future-proof.
Storefront API v2 consists of:
- ๐ Cart endpoints (Create Cart, Add Item, Set Quantity, Remove Item, Empty Cart)
- โก๏ธ Checkout endpoints (Update Checkout, Advance Checkout, Complete Checkout, Add/Remove Store Credit, Get Shiping Rates, Get Payment Methods)
- Products Catalog
- Taxons Catalog
- Account endpoints (Account Information, Credit Cards, placed Orders)
- Order Status
- Countries
- Authentication
๐ All of the endpoints support JSON API's Sparse Fieldsets to fix usual Over-Fetching issues and Related Resources to reduce the number of API queries you need to perform.
Service Oriented Architecture
๐จ While building the API v2 we've also refactored a huge portion of Spree internals by introducing modular Service Oriented Architecture to the codebase.
We're in the process of moving domain-specific code from models to
Service Objects
with a well-defined scope and predictable return values. All service objects include Service Module which unifies how those classes handle arguments and what they return.Also, we're moving away from ransack library by introducing
Finders
andSorters
classes for simpler fetching resources and collections.This makes Spree codebase easier to read and learn. It also makes any customizations way easier. At the same time, public APIs won't change a lot as providing backward compatibility is one of our top priorities.
Dependencies system
๐ We're introducing a new painless way of customizing Spree without the need of decorators. With Dependencies you can easily replace parts of Spree internals with your custom classes. You can replace Services, Abilities and Serializers. More will come in the future. We hope using Dependencies will remove the need for creating decorators at all!
๐ See Documentation
Removing Coffee Script
๐ฑ CoffeeScript a few years back ago was a really great JavaScript enhancement. Nowadays with ES6 and TypeScript around it became obsolete. That's why we've converted all of the CoffeeScript assets in Spree and extensions to plain JavaScript and removed CoffeeScript dependency.
๐ Improved MySQL support
๐ A lot of merchants were using Spree with MySQL for years now, but development of the platform was mainly focused on PostgreSQL support. We've changed that and all of our CI builds are tested and verified against both PostgreSQL and MySQL. We've also fixed all MySQL-related bugs.
Installation
โ Add Spree gems to Gemfile
gem 'spree', '~\> 3.7.0'gem 'spree\_auth\_devise', '~\> 3.5'gem 'spree\_gateway', '~\> 3.4'
โ Run
bundle install
๐ Use the install generators to set up Spree
rails g spree:install --user\_class=Spree::User rails g spree:auth:install rails g spree\_gateway:install
โฌ๏ธ Upgrade
โฌ๏ธ Spree 3.6 to 3.7 upgrade guide
Noteworthy changes
Please review each of the noteworthy changes to ensure your customizations or extensions are not affected. If you are affected by a change, and have any suggestions please submit a PR to help the next person!
โฌ๏ธ Dropped support for Ruby 2.2
๐ Support multiple currencies for
Store Credits
management in Admin Panelโ Added information if Product is backorderable on Product page
๐ Improved OmniChannel support in the Admin Panel
๐ Improved error handling for XHR requests in the Admin Panel
๐ Improved Admin Panel Variant autocomplete
Order
is now associated withStore
, the presence ofStore
is required for validationOrder
now has to havecurrency
value set0๏ธโฃ Made
CreditCard
deleted softly by defaultPayment
source
needs to be present (validation can be turned off viasource_required?
inPaymentMethod
)โ Added
StockLocation#name
unique validationโ Added
FulfilmentChanger
classExtended
OrderPromotion
modelโ Added
ShippingRate#final_price
methodโ Added
Shipment#free?
method0๏ธโฃ Added
Product#default_variant
andProduct#default_variant_id
methodsDelegated
iso
andiso_name
inAddress
model toCountry
Replaced
jquery.cookie
withjs.cookie
๐ Fixed deprecation warning:
BigDecimal.new() is deprecated
๐ Fixed displaying currency in
Admin Panel
->Return Authorizations
๐ Fixed all deprecations of Ruby Money 6.13+
Fallback to
Order#currency
if there's no currency set forAdjustment
๐ Renamed
Order#guest_token
toOrder#token
๐ Renamed
Admin::GeneralSettingsHelper
toAdmin::CurrencyHelper
๐ Renamed
TaxonIcon
toTaxonImage
๐ Deprecated
OrderContents
and replaced with severalCart
services (eg.Cart::AddItem
)Deprecated
Order#add_store_credit_payments
in favor ofCheckout::AddStoreCredit
serviceDeprecated
Order#remove_store_credit_payments
in favor ofCheckout::RemoveStoreCredit
service๐ Deprecated
OrdersController#populate
andOrdersController#populate_redirect
๐ Deprecated
Address#same_as?
in favor ofAddress#==
Deprecated
Order#add register_line_item_comparison_hook
(please useRails.application.config.spree.line_item_comparison_hooks << hook
instead)๐ Deprecated
ControllerHelpers::RespondWith
๐ Deprecated
BaseHelper#variant_options
Deprecated
Address#iso_name
, please useAddress#country_iso_name
โ Removed previously deprecated
Spree::Core::EnvironmentExtension
โ Removed previously deprecated
ControllerHelpers::Common#render_404
โ Removed previously deprecated
EmailValidator
โ Removed previously deprecated
NavigationHelper#icon
โ Removed previously deprecated
FrontendHelper#breadcrums
Removed
Product#distinct_by_product_ids
โฌ๏ธ Bumped
highline
dependency to2.0.x
โฌ๏ธ Bumped
paperclip
dependency to6.1.x
โฌ๏ธ Bumped
bootstrap-sass
to3.4.x
Full Changelog
You can view the full changes using Github Compare.
-
v3.7.0.rc3
January 28, 2019 -
v3.7.0.rc2
January 22, 2019 -
v3.7.0.rc1 Changes
January 11, 2019Major/New Features
๐ 3.7 release is our last 3.x line release bridging the gap between 3.x and Spree 4.0. This is a big release packed with several amazing features and a huge number of bug fixes (over 700 commits by 17 contributors!). Upgrading to 3.7 guarantees a smooth and easy migration to Spree 4.0 (April 2019 with Rails 6.0 support).
๐ Spree 3.7 requires Rails 5.2.2 and Ruby 2.3.3 (or higher).
Storefront API v2
๐ We've worked hard over the last few months to deliver a completely new, easy to work with and lightweight REST API for building amazing customer interfaces with modern JavaScript libraries (React, Vue, Angular) and for native mobile apps. New Storefront API v2 is fast, easy to use and extend. It's also well documented in OpenAPI 3.0 (Swagger) format which you can import into Postman app.
New API is based on JSON API spec and uses blazing fast Netflix fast_json_api serializer library. Authentication is based on Oauth using doorkeeper library. Besides that there are no additional dependencies making it lightweight and future-proof.
Storefront API v2 consists of:
- ๐ Cart endpoints (Create Cart, Add Item, Set Quantity, Remove Item, Empty Cart)
- โก๏ธ Checkout endpoints (Update Checkout, Advance Checkout, Complete Checkout, Add/Remove Store Credit, Get Shiping Rates, Get Payment Methods)
- Products Catalog
- Taxons Catalog
- Account (Account Information, Credit Cards)
- Countries
- Authentication
๐ All of the endpoints support JSON API's Sparse Fieldsets to fix usual Over-Fetching issues and Related Resources to reduce the number of API queries you need to perform.
Service Oriented Architecture
๐จ While building the API v2 we've also refactored a huge portion of Spree internals by introducing modular Service Oriented Architecture to the codebase.
We're in the process of moving domain-specific code from models to
Service Objects
with a well-defined scope and predictable return values. All service objects include Service Module which unifies how those classes handle arguments and what they return.Also, we're moving away from ransack library by introducing
Finders
andSorters
classes for simpler fetching resources and collections.This makes Spree codebase easier to read and learn. It also makes any customizations way easier. At the same time, public APIs won't change a lot as providing backward compatibility is one of our top priorities.
Removing Coffee Script
๐ฑ CoffeeScript a few years back ago was a really great JavaScript enhancement. Nowadays with ES6 and TypeScript around it became obsolete. That's why we've converted all of the CoffeeScript assets in Spree and extensions to plain JavaScript and removed CoffeeScript dependency.
๐ Improved MySQL support
๐ A lot of merchants were using Spree with MySQL for years now, but development of the platform was mainly focused on PostgreSQL support. We've changed that and all of our CI builds are tested and verified against both PostgreSQL and MySQL. We've also fixed all MySQL-related bugs.
Installation
โ Add Spree gems to Gemfile
gem 'spree', '~\> 3.7.0.rc1'gem 'spree\_auth\_devise', '~\> 3.4'gem 'spree\_gateway', '~\> 3.4'
โ Run
bundle install
๐ Use the install generators to set up Spree
rails g spree:install --user\_class=Spree::User rails g spree:auth:install rails g spree\_gateway:install
โฌ๏ธ Upgrade
โฌ๏ธ Spree 3.6 to 3.7 upgrade guide
Noteworthy changes
Please review each of the noteworthy changes to ensure your customizations or extensions are not affected. If you are affected by a change, and have any suggestions please submit a PR to help the next person!
โฌ๏ธ Dropped support for Ruby 2.2
๐ Support multiple currencies for
Store Credits
management in Admin Panelโ Added information if Product is backorderable on Product page
๐ Improved OmniChannel support in the Admin Panel
๐ Improved error handling for XHR requests in the Admin Panel
๐ Improved Admin Panel Variant autocomplete
Order
is now associated withStore
, the presence ofStore
is required for validationOrder
now has to havecurrency
value set0๏ธโฃ Made
CreditCard
deleted softly by defaultPayment
source
needs to be present (validation can be turned off viasource_required?
inPaymentMethod
)โ Added
StockLocation#name
unique validationโ Added
FulfilmentChanger
classExtended
OrderPromotion
modelโ Added
ShippingRate#final_price
methodโ Added
Shipment#free?
method0๏ธโฃ Added
Product#default_variant
andProduct#default_variant_id
methodsReplaced
jquery.cookie
withjs.cookie
๐ Fixed deprecation warning:
BigDecimal.new() is deprecated
๐ Fixed displaying currency in
Admin Panel
->Return Authorizations
๐ Fixed all deprecations of Ruby Money 6.13+
Fallback to
Order#currency
if there's no currency set forAdjustment
๐ Renamed
Order#guest_token
toOrder#token
๐ Renamed
Admin::GeneralSettingsHelper
toAdmin::CurrencyHelper
๐ Renamed
TaxonIcon
toTaxonImage
๐ Deprecated
OrderContents
and replaced with severalCart
services (eg.Cart::AddItem
)Deprecated
Order#add_store_credit_payments
in favor ofCheckout::AddStoreCredit
serviceDeprecated
Order#remove_store_credit_payments
in favor ofCheckout::RemoveStoreCredit
service๐ Deprecated
OrdersController#populate
andOrdersController#populate_redirect
๐ Deprecated
Address#same_as?
in favor ofAddress#==
Deprecated
Order#add register_line_item_comparison_hook
(please useRails.application.config.spree.line_item_comparison_hooks << hook
instead)๐ Deprecated
ControllerHelpers::RespondWith
๐ Deprecated
BaseHelper#variant_options
โ Removed previously deprecated
Spree::Core::EnvironmentExtension
โ Removed previously deprecated
ControllerHelpers::Common#render_404
โ Removed previously deprecated
EmailValidator
โ Removed previously deprecated
NavigationHelper#icon
โ Removed previously deprecated
FrontendHelper#breadcrums
Removed
Product#distinct_by_product_ids
โฌ๏ธ Bumped
highline
dependency to2.0.x
โฌ๏ธ Bumped
paperclip
dependency to6.1.x
โฌ๏ธ Bumped
bootstrap-sass
to3.4.x
Full Changelog
You can view the full changes using Github Compare.