Blog

Posts Tagged ‘release’

November 17 2010

Spree 0.30.1 Releasedby schof

Spree 0.30.1 has been officially released. This is a minor patch release that addresses some minor bugs in the previous 0.30.0 release. It also fixes some recent issues with a new restriction on routes introduced by Rails 3.0.2. For a complete list of changes, please see the Github compare.

November 09 2010

Spree 0.30.0 Releasedby schof

The Spree team is proud to (finally) announce the release of Spree 0.30.0. Spree is now officially compatible with Rails 3.x after almost five months of relentless work. In addition to Rails 3 support, we took this opportunity to refactor a lot of the internals and to improve our test coverage.

According to the Github compare, this release consisted of 666 distinct commits by 25 different authors and touching 2,609 different files. The number of files is a bit overstated because we moved almost every file in the project as we reorganized things - but still, there were a ton of changes in this release. The official release notes are available on the Spree site.

I want to thank everyone in the Spree community - especially those that contributed code and patches for the release. It took a lot longer than we wanted but we also took a huge step towards a more solid and standards-based foundation. Don't worry, we won't be resting after this release either. We're looking to drop some major authentication improvements this month as well as to roll out 0.30.x compatible versions of several extensions. We've also started work on the new "social" extensions as promised.

October 12 2010

Spree 0.11.1 Releasedby schof

Spree 0.11.1 has been officially released. This is a patch release that addresses several issues discovered since 0.11.0. It is also the last expected release before the new Rails3 compatible version of Spree. We'll continue to maintain the 0-11-stable branch but the focus will be on bug fixes as opposed to adding new features.

The new release addresses the following issues:

  • 818 - Migrate taxons to nested set for major performance boost
  • 1303 - Taxonomies with no taxons cause NoMethodError
  • 1414 - Bump will_paginate to 2.3.12
  • 1439 - Bump state_machine to latest version
  • 1452 - Extra closing tags in checkouts/_address
  • 1462 - Fix path finding for script/extension script
  • 1463 - Remove deprecated script/breakpointer
  • 1464 - Remove deprecated script/performance/request
  • 1475 - Require email address on checkout model
  • 1482 - Creditcard model only integer validation is wrong in syntax
  • 1492 - no such file to load -- rspec when running the tests
  • 1494 - Allow specifying where shipping methods are displayed
  • 1499 - Fix escaping HTML issue with rails 2.3.8
  • 1503 - Fix admin additional field labels id
  • 1509 - Extensions are not being loaded
  • 1515 - Shipping Methods mixed up between Country-based zone and State-based zone
  • 1523 - error from double submit on checkout payment
  • 1526 - Cannot proceed to delivery from address step when address fails to validate
  • 1534 - Backport patches from rails3 branch
  • 1538 - Could not use Check payment because validation js of credit card payment
  • 1541 - Tidy up admin interface
  • 1572 - Checkout validation can raise exception in certain states
  • 1573 - Sample payments not capturing properly
  • 1574 - Editing a paid order in admin screen can result in incorrect shipment states
  • 1621 - Add validationMode support to Gateway::AuthorizeNetCim
  • 1636 - Coupon submission destroying payment
  • 1654 - RMA number changes when record updated
  • 1658 - Credits / Voids can result in invalid order states
  • 1668 - Canceled order should allow balance_due or credit_owed state
September 03 2010

Spree 0.30.0.beta1 Releasedby schof

We're pleased to announce our first beta release of a Rails3 compatible version of Spree. This time its a little bit rougher than our usual beta quality where we encourage as many of our users as possible to try it out in advance of the official release. There are several known bugs and deficiencies in this gem so you should really hold off until the next beta release which we hope to achieve at the end of next week.

So why bother releasing an unfinished beta? There a few reasons actually. The first reason is that we are working on upgrading one of our Railsdog customers to the latest code and they are on Heroku. Heroku is much simpler when you work with real gems (as opposed to edge git clones.) The second reason is that we're now releasing Spree as a series of gems instead of a single gem so we wanted to make sure that we had this process working correctly before we started encouraging others to jump on board.

Spree is technically still a single gem but it now depends on five (soon to be six) additional gems.

  • spree_core: Basic functionality - you won't get very far without this one.
  • spree_auth: Authentication and authorization stuff.
  • spree_api: Restful API implementation
  • spree_dash: A nice overview dashboard implementation.
  • spree_sample: Contains sample products, orders and images.

When you install the Spree gem you still get all of these pieces installed automatically. We've structured things, however, so that you do have the option to pick and choose which pieces you would like to use if you're so inclined. Think Rails and how it consits of Active Record, Active Support, etc.

There is pretty much no documentation other than a few README files at this point. That will change but we're haven't invested too much in documentation up until now because things were so fluid. We're pretty comfortable with how things are working so don't expect a lot of radical changes between beta releases and the final release. We'll be focused on nailing things down and fixing bugs. Feel free to report issues in lighthouse - just be sure to tag as rails3 so we know you're talking about the new code.

June 15 2010

The Road to Rails 3 - resource_controllerby bdq

There's been lots of discussion recently on spree-user and at the Spree BOF at RailsConf regarding Spree's use of resource_controller (r_c), and our options as we move towards Rails 3. We're confident that our migration to Rails 3 is going to be a great step forward for the platform, as it will greatly simplify how Spree implements extensions due to the fantastic engine and railtie features in Rails 3. Some members of the community have suggested that we use the Rails 3 migration to also remove r_c from Spree. We've seriously considered this and I'd like to explain how we've arrived at our decision to keep resource_controller.

Issue 1: Removing resource_controller will simplify controller code and make it more understandable especially to new developers:
This is probably one of the most compelling reasons to remove r_c as we accept that the learning curve for the controller logic can be a little steeper than a traditional rails application. Some controllers especially the checkouts controller would benefit greatly by removing r_c code as it's not a true restful resource and not a good candidate for r_c use. In the future we plan to ensure all unsuitable controllers will be rewritten to reduce the usage of r_c and improve readability and maintainability, starting with the checkouts_controller.

Issue 2: resource_controller isn't actively maintained and not currently Rails 3 compatible.
While r_c hasn't been getting much attention from it's original author (James Golick) it does have a large network of forks and it still receiving frequent improvements / bug fixes. We've spent a considerable amount of time migrating r_c to Rails 3 and we're happy to say that it's now fully functional and we're also very close to getting all tests passing after some badly needed attention at RailsConf / BohConf (thank you Derek). Please take a look at our fork and patches / comments are welcome.

Issue 3: inherited_resources is a better alternative:
After some review we’ve found that inherited_resources is not missing many of the features that resource_controller offers, it does however implement them in a significantly different way which would add considerable overhead for any migration (as core and all extensions would need to be-written to match). There are two key features provided by resource_controller that differ in inherited_resources:

  • In-action before and after filters that unlike standard Rails filters get executed just before / after the actual event takes place, when the object has already been loaded / built. This allows extensions and core Spree to cleanly and efficiently hook into actions without adding lots of unnecessary database activity that's normally associated with traditional before / after filters. r_c also supports filters based on the result of a particular action (success / failure), and they're also stack-able allowing core and multiple extensions to add multiple callbacks to a single filter.  

  • Render / redirect overrides allows developers to simply change what gets rendered or where an action will redirect a user after completion in both success and failure states.

Both of the these r_c features enable developers to add / replace small pieces of logic without overriding and replacing entire controller actions which greatly eases version upgrades, and provides a unique pluggable architecture for Spree extensions. Re-implementing these features using inherited_resources would be very time consuming and counter-productive at this point in time.

Code bloat
During one of our BohConf hacking sessions we decided to rewrite a single controller (admin zones_controller) removing r_c while still retaining all the hooks / extensibility features mentioned in issue 3. This exercise allowed us to evaluate what the codebase might look like after the removal of r_c. We did expect the code to grow a small amount but we were surprised that it actually ballooned from 35 lines to 105 lines after the change. While readability and simplicity did improve, DRYness and maintainability suffered greatly. The overall consensus on this point was that the DRYness / maintainability benefits far out weights any simplifications gained.

Conclusion
After reviewing both options of either removing resource_controller completely or switching to inherited_resources it's become clear that a lot of the customization that Spree offers is deeply linked to resource_controller functionality. While inherited_resources is a promising option it currently poses too much of an overhead in terms of rewriting coding and changes to the overall internal workings of Spree.      

Overall we think that resource_controller adds a lot of value to Spree and that any plans to remove it would damage Spree's well known and loved extensibility.

June 14 2010

Spree 0.11.0 Releasedby schof

Spree 0.11.0 has been officially released. This release makes Spree compatible with the latest Rails 2.3.8 release. Several changes to Spree were required to get this to work (especially without deprecation warnings.) The impact on existing 0.10.x stores should, however, be minimal. As always, it is suggested that you perform a complete backup of your database and system assets before upgrading.

The new release contains a change to the default Spree theme to match the new logo. Nothing drastic - just a slightly different color scheme to go better with the new logo colors. There aren't any real major features in this release but there are a ton of ton of important bug fixes and other changes. The Github compare for this release shows 173 commits by 20 different authors. So thanks once again to all of the people in the community that are working to improve Spree.

March 29 2010

Spree 0.10.2 Releasedby schof

This is another minor patch release to address a few additional issues with the 0.10.0 release. Please report any issues in our issue tracker.

  • #1215 Update Vietnamese translation
  • #1230 Product#recalculate_count_on_hand migration from 0.9.4 to 0.10.0
  • #1234 Billing address not accepting UK state
  • #1238 Should not create empty order in db for orders/new action
  • #1240 Add test-unit to gem dependency
  • #1249 Authorize.net CIM does not work with live account
  • #1251 Skip confirmation step if payment profiles are not available
  • #1253 Table variants doesn't exist when bootstrapping with extensions installed that modify the Variant model
  • #1255 Products groups edit error
  • #1257 Coupons do not recalculate credit after redeemed
  • #1261 Type Error when Checkout
  • #1263 Submitting a coupon during the checkout confirmation fails
  • #1269 Orders Overview page breaks when there are no orders in the last 7 days
  • #1276 Product Images not updating properly
March 16 2010

Spree 0.10.1 Releasedby railsdog

This is a minor patch release to address three minor issues reported with the latest release. These issues were severe enough that we've decided to fix them immediately rather than wait until another release.

  • #1209 - Ruby Gems Warning (reverted this fix - RubyGems 1.3.6 is now required again)
  • #1245 - payment_gateway extension fails to load in production when spree is gemified
  • #759 - Error with creating admin user during bootstrap: unknown attribute: password_confirmation (Fixed in production mode)

We've done our best to minimize the need for patch releases but we always seem to get a few bug reports after each release. We still have an outstanding issue with Authorize.net CIM that will probably require another patch release later this week. We'll try to hold off until we are sure there are not any more critical bugs to fix.

March 13 2010

Spree 0.10.0 Releasedby railsdog

Spree 0.10.0 has been released. Its been several months since the last release so there is even more goodness than usual. Here are some of the highlights

  • Named scopes and product groups
  • Pluggable search (with extension support for Xapian, Sphinx and Solr.)
  • Theming
  • New and improved multi-step checkout
  • Improved gateway configuration
  • Multiple payment methods
  • Refunds and credits
  • SEO improvements
  • Restful API
  • Support for Rails 2.3.5 and Ruby 1.9

Please see the release notes for the complete details.

I'm especially proud of the support we continue to receive from our awesome community! Checkout the Github compare between this and the last release.

  • 583 commits
  • 32 different authors
  • 1727 files changed

I'd like to give a special thanks to our newest core team members: David North and Roman Smirnov. David helped to save the day and finish the massive payment refactoring when I needed to go on a much needed vacation. Roman has been tirelessly applying patches submitted by the community when he was not busy writing his own! Paul Callaghan also deserves a special thanks (welcome back Paul!) Not only has he been very active on the spree-user list, but he spent countless hours making improvements to our documentation.

March 06 2010

Spree 0.10.0.beta Now Availableby railsdog

We have just released a beta version of Spree 0.10.0. We're asking developers who are planning on upgrading when the final 0.10.0 gem is released to help us with some testing. It is recommended that you try this upgrade in a "sandbox" environment that matches your production environment. This will allow you to experiment safely and observe the effects of the upgrade process.

You should make sure you have RubyGems version 1.3.6 installed and then upgrade your Spree gem as follows:


gem update spree --pre

You can then upgrade your existing Spree application by switching to your application root and running:


spree --update

There is some online documentation for the edge version but its still a work in progress. We hope to finalize the documentation next week when we push the final release. Please report any bugs you find in our issue tracker.

December 10 2009

Spree 0.9.4 Releasedby railsdog

Spree 0.9.4 has been released. This is a trivial patch release. It fixes a bug that some users were experiencing installing the rdoc for the previous 0.9.3 gem. It is not necessary to upgrade from 0.9.3 if the gem is working for you since this affects only the documentation.

December 06 2009

Spree 0.9.3 Releasedby railsdog

The Spree team is pleased to announce the latest release: v0.9.3. This is a patch release that provides support for the new Rails 2.3.5 release. Rails 2.3.5 contains a security fix so you may want to consider updating. We also addressed an issue with stylesheets when running Spree under a sub URI. We discovered that bug when preparing for another major announcement which should be coming soon.

This is also the first release on gemcutter (since Rubyforge gems are now out of fashion it seems.) If you're not finding the gem, you just need to install the gemcutter gem.


gem install gemcutter
gem tumble
gem install spree   # .. or gem update spree if you already have it installed

If you have an existing Spree app you can update it easily enough after you've upgraded the gem. Just run the following command in your application root:


spree --update


October 21 2009

Spree 0.9.2 Releasedby railsdog

This is a patch release containing a single important security fix. The security vulnerability was reported late yesterday and affects only the 0.9.0 and 0.9.1 versions of Spree. Sites running older versions of Spree (0.8.x, etc.) are not affected. If your site provides its own custom version of checkout_controller.rb then you will want to make some modifications.

Add this filter to the top of your controller:


before_filter :prevent_editing_complete_order, :only => [:edit, :update]

Then add the following method to your controller as well:


def prevent_editing_complete_order      
  load_object
  redirect_to order_url(parent_object) if @order.checkout_complete
end

In the future if you suspect a security bug. Please send an email to security@railsdog.com. Please do not send a message to spree-user until we have a chance to verify the issue and hopefully provide a timely fix.

October 13 2009

Spree 0.9.1 Releasedby railsdog

Spree 0.9.1 is a trivial patch release which addresses a gem dependency issue caused by a recent change in the Github gem repository. If you are already running Spree 0.9.0 you do not need to update. The new version simply uses a slightly newer version of the compass and haml gems. The older versions were no longer available in a public repo so we did this release to make sure that new users were able to run things without a hitch.

September 22 2009

Spree 0.9.0 Releasedby railsdog

Spree 0.9.0 has been officially released. This is a major release with several new features and improvements. The most anticipated new feature is coupon and discount support. The Spree core now ships with a minimal set of coupon calculators and provides the framework for building much more powerful custom logic. Speaking of calculators, Spree is now sporting a significantly improved system of calculators.

The new release is also compatible with Rails 2.3.4 which contains some crucial security fixes. This release also contains some signficiant improvements to product variants. It is now possible to configure different product images for each variant and to display the specific variant image in the shopping cart. Please also see the very detailed release notes for more information on the release and how to upgrade an existing version of Spree.

Spree continues to improve its i18n support and is proud to announce the addition of the following localizations:

  • Thai
  • Hebrew
  • Dutch
  • Finnish
  • Mexican Spanish

If you have a new localization to add or wish to make improvements to an existing one, please see our contribution guidelines for information on how you can contribute.

We are already hard at work on the next major release. The massive growth in real world deployments of Spree has provided us with valuable insight into possible new features and improvements. We'll be doing a major push to add core features as well as new extensions. There will also be a concerted effort to document and update the existing extensions. Stay tuned!

July 08 2009

Spree 0.8.5 Releasedby railsdog

We've just done another patch release to Spree. This release actually contains no changes other then those that were supposed to have made it into the 0.8.4 release. Due to some "enthusiastic" git branch deletion I accidentally removed some of the changes needed for the release. So the 0.8.4 release did not really do anything other then increment the version number. This release contains the minor rake task upgrades that were supposed to be part of that release.