Summary
This is the official 1.1 Release of Spree. This is a minor release, and so backwards compatibility with extensions and applications is mostly guaranteed. There may still be some changes required for your extensions or applications, and so please read the changelog below to know if you are affected.
If any particular extension your store uses is not yet compatible you are encouraged to alert the Spree team about it by filing an issue on that extension project if it’s an official extension, or to submit a patch to that project to upgrade compatibility.
Major changes (backwards incompatibility)
Support for Rails 3.2.x only
Support for Rails 3.1.x is dropped. Rails 3.2.x offers performance boost in development mode and is the first-class supported platform for 1.1.x release cycles. It is recommended that you use the latest version 3.2.3. Please upgrade your Rails before bumping Spree gem by modifying your Gemfile:
gem 'rails', '3.2.3' group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' gem 'uglifier', '>= 1.0.3' gem 'jquery-rails' end
ransack replaced meta_search
ransack replaced meta_search as the primary object-based
searching mechanism.
Be warned that ransack is not fully backward-compatible with
meta_search query.
Make sure you port and test all meta_search queries to ransack
after upgrade.
spree_product_groups now as standalone extension
Product Groups component has been extracted to a standalone spree extension. It is recommended that if you are using this functionality to add the new extension to your Gemfile:
gem ‘spree_product_groups’, :git => ‘[email protected]:spree/spree_product_groups.git’
Old Theme Hook
theme_support files are now deprecated in favor of Deface. Make sure
you port
all your old style hooks to Deface.
Major rewrite of Creditcard model
Prior to 1.1, the Creditcard model contained a lot of payment
processing code. This has since been
moved
into the Payment model. If you have customized the
Spree::Admin::PaymentsController or depend on any of the payment
processing methods inside the CreditCard model such as authorize,
credit, or void, this change may affect you.
API rewrite
The API component of Spree has undergone a major rewrite in order to provide better support for applications wishing to interact with it using tools such as Backbone, or for people wishing to just generally access the individual components of Spree.
This is currently a work-in-progress and we would appreciate feedback on the API on the mailing list.
As a part of this, the spree/spree_api assets are no longer
available, and so these should be removed from the store/all.css,
store/all.js, store/admin/all.css and store/admin/all.js assets
located in your application.
Minor changes
Introduce Spree::Product#master_images and Spree::Product#variant_images
Spree::Product#master_images and its alias Spree::Product#images
only returns images belongs to master variant.
Spree::Product#variant_images behaviour is changed, it is no longer
return only images belongs to master variants but now also include all
variants’ images.
Stronger mass assignment protection
As per the Rails 3.2.3 release notes , there is a stronger enforcement of attribute protection within Rails. This may affect your Spree application, and if it does we would advise filing an issue so that it can be promptly fixed. While the tests for Spree itself are extensive, there may still be edge cases where your application goes that we do not have covered.
Removed images association of Spree::Product
Spree::Product association with viewable has been moved master
variant of
the product. The change is backward compatible and require no upgrade
modification.
A call to the images method on a Spree::Product will return all the
images associated with all the variants of this product. If you want
just the master variant’s images, use product.master.images.
The version of Paperclip required by Spree 1.1 is now any version of the 2.7.x branch of Paperclip.
Clearer separation of Spree components
It was brought to our attention that the Core component of Spree depended upon things from other components, primarily Auth. The purpose of the Core component is that it should be usable in complete isolation from all other components of Spree. This feature was regressed during the 1..0 branch, but has now been fixed in the 1.1 branch.
From 1.1 onwards, you will once again be able to use the Core component of Spree in isolation from the other components if you choose so.
Allow for easier Spree controller spec testing
We have added a Spree::Core::TestingSupport::ControllerRequests module
to aid in the testing of Spree controllers within not only the Spree
components, but also within your application. The documentation at the
top of this
module
should adequately describe how this works.
Deprecated functions
Spree::Zone
Spree::Zone#in_zone? is retired, please use Spree::Zone#include?
instead.
Spree::PaymentMethod
Spree::PaymentMethod.current is retired, please use
current_order.payment_method instead.
Additionally, current_gateway is also removed.
Spree::ProductsHelper
product_price is retired, please use number_to_currency instead.
Spree::HookHelper
hook is retired, please use Deface instead.
Spree::Variant
Spree::Variant.additional_fields has been deprecated in favour of
using decorators and Deface. Please see
#1406 for more
information.
Patches
Version bumps
- Paperclip version has been bumped to 2.7.0. #1148 + #1152
- Stringex version has been bumped to 1.3.2 to prevent 1.3.1 from being used, as that release contained a bug.
- nested_set version has been bumped to 1.7.0. 9b7eda3
- jquery-rails version has been bumped to \~> 2.0.0. d4b3d7
- deface version has been bumped to 0.8.0. e571ed
- highline version has been bumped to 1.6.11. 45f5e2
Other fixes
- Added
admin/orders/address_states.jsto precompile list. #754 - Added initializer to warn about orphaned preferences. commit 4f2669
- Address.default will no longer provide a nil value if the default country is deleted. #1142 + #997
- Fix undefined_method to_d for PriceSack Shipping. #1156
- Fixed rounding calculation bug for VAT. #1128 + #1172
- Allow
:errorkey to be passed tolink_to_delete.#1169 - Fix issue where assigning a price such as”$5” to a variant caused it to set the price to 0. #1173
- Product names longer than 50 characters are now truncated. #1171
- Fix issue where preferences set to
falsewere not being saved. #1177 - Fix incorrect variable name in
script/railsfile inside extension generator. #1135 - Acknowledge Spree’s own locale settings before
Rails.application.config.i18n.default_localefor Spree’s locale details. #1184 - Fix issue where preferences set to an empty string were not being saved. #1187
- Set
default_url_optionsinmail_settings.rbso that it doesn’t need to be set manually for each environment or mailer. #1188 - Correctly fire events for content paths and actions. #1141
- Allow preferences with a type of
:text. - Image settings (such as width & height) are now configurable via the Admin interface. 7d987fe
- Fix bug where
Payment#build_sourcewould fail dependent on the ordering of the hash passed in. #981 - Fix issue where states javascript include would be prefixed with asset host when alternate asset host was configured. #1213
- Fix issue where
Promotion#productswould return no products due to incorrect class specification. #1237 - Order email addresses are now validated with the Mail gem. #1238
- Attempt to access
/admin/products/{id}will now redirect to/admin/products/{id}. #1239 - Show ‘N/A’ for tax category on
/admin/tax_ratesif a tax rate doesn’t have a tax category. #535 - Fix issue where incorrect order assignment was breaking return authorization creation. #1107 #1109 #1149
- Fix issue where under certain circumstances users were able to view other people’s order information. #1243
- Fix issue where searching for orders by SKU was broken in admin backend. #1259
- Logout when “Remember me” was checked for login now will actually log a user out. #1257
Spree::UrlHelpershas moved toSpree::Core::UrlHelpers3bf5df- Preview buttons on the admin dashboard are now hidden once the dashboard has been configured. #1271
- Slightly alter permalink code so that it does not conflict on similar names. Current permalinks will not be affected. #1254
- Don’t allow payments to be created in admin backend unless payment methods have been defined. #1269
Address#full_namewill now return a string with no extra spaces around it. #1298- Ensure
StatesControlleralways returns JS response. #1304 - Fix issue where checkbox for “Use Billing Address” was not being checked for an order in admin backend when it was in the frontend. #1290
- Fix issue where a shipping method could not be updated. #1331
- Allow layout to be customized based on a configuration setting. #1355
Rails.application.config.assets.debugis no longer hardcoded tofalsein Spree. Set this variable at your discretion inside yourconfig/application.rbfrom now on. #1356- Added
gem_available?method toBaseHelperto be able to check if an extension is available. #1241 - Fixed potential bug where
Activator.activescope may have not been returning activators that were currently active. #1343 - Fix incorrect route issue when updating a return authorization. #1343
- Fixed issue where “Add to Cart” button may not work on IE7. #1397
- Fixed issue where non-price characters were being stripped from prices. #1392 #1400
- Limit ProductsController#show to only show active products. #1390
- Spree::Calculator::PerItem will now calculate per-item, rather than per-line-item. This means that if you have a per-item calculator costing $1 and 3 line items with quantity of 5 that would be $15, rather than $3. #1414
