Workarea Versions Save

Workarea is an enterprise-grade Ruby on Rails commerce platform

v3.4.19

4 years ago

Patch release notes for Workarea 3.4.19.

Lock Down Sprockets to v3.7.2

Sprockets v4.0 was released on 10/8/2019, which removed the .register_engine method that is depended on by many extensions to Sprockets at the current moment. Lock down Sprockets to v3.7.2 to avoid these issues, which will show up when the app is loaded or tests are run.

Pull Requests

Issues

_id Suffix Omitted From Customized Fields

When adding a customized field to a Customizations class that ends in _id, Workarea was previously stripping this suffix from the computed instance variable name that is converted into snake case from any kind of input. This causes issues because the data doesn't appear to be making it into customizations, but is really there under a different instance variable name. To resolve the issue, Workarea now detects whether a variable is already using snake case and leaves it alone...only providing transformations for variable names that need it.

Pull Requests

Issues

Fix Tests for Admin Toolbar

The admin toolbar is loaded within an <iframe>, which makes Capybara unable to determine when it's been loaded. As a result, Capybara attempts to perform actions on the element when it has not fully loaded, which results in failing tests on CI. While there doesn't seem to be a definitive solution to this issue, a sleep has been added prior to testing markup in the <iframe> in order to get tests passing for now. In the future, the admin toolbar will no longer be loaded within an <iframe>, which will avoid this problem by v3.6.

Pull Requests

Lock Down Faraday to v0.15.x

Faraday released breaking changes in v0.16.0 that were not properly supported by our required version of the Elasticsearch gem. This caused builds to fail with strange Faraday errors and an inability to connect to the server. Locking down Faraday to the latest v0.15 version has resolved the issues in builds.

Pull Requests

Improve Order of Changesets in Timeline UI

A UX improvement to how changesets are ordered in the timeline. They will now be rendered in the following order:

  1. Unscheduled changesets
  2. Scheduled changesets, ordered by the release's publish date, descending
  3. Today (if applicable)
  4. Historical changesets

Pull Requests

Fix Self-Referential Category Product Rules

Adding the same ID to a category product rule matching the product list that contains it results in some wonky results coming back. This was originally diagnosed as an issue when combining category rules, but in reality, it has to do with an admin mis-using the product rules interface and perhaps accidentally using the category's own ID in a product rule. To prevent this from happening, Workarea now cleans the current product_list.id from the value if a category rule is created or updated.

Pull Requests

Issues

Fix missing aspect ratio magic attribute

This magic attribute doesn't need to be calculated, it's the inverse of the aspect ratio we already have. Relying on the magic attributes for this would require re-saving each model instance.

Pull Requests

v3.4.18

4 years ago

A recent minor update to Faraday included breaking changes, causing errors in the build when used in conjunction with the Elasticsearch v5 gem, which should eventually update to address the changes. Until then, Workarea now depends on a locked-down Faraday v0.15.x, which avoids this error and helps you continue to deploy your lovely online store!

v3.4.17

4 years ago

What's Changed?

Add Order Confirmation Append Point

Add the storefront.checkout_confirmation_text append point below the workarea.storefront.checkouts.confirmation_text copy in storefront.

Issues

Pull Requests

Prevent Error in Product Admin When There Are No Categories

ProductViewModel#default_category now protects against a nil value for the default category before passing its value into a view model. This caused an issue for a brand new install when no categories have been added yet.

Issues

Pull Requests

Improve display of referrer URLs on Orders Show view

Due to the length of URLs being displayed on Order Attributes in the admin they will potentially break layout. Now they are displayed within a tooltip behind a "View" link click. The resulting tooltip will prompt the user to copy the contents of a text box containing the URL.

Fixes #60

Issues

Pull Requests

Improve Plugin Template

The plugin template has been overhauled to work with open source-derived Workarea code, and some additional fixes for plugin developers to make things easier. A short list:

  • Updates usage documentation at top of template
  • Properly namespace directories under app/assets
  • Set starting version to 1.0.0.pre
  • Point to HTTPS GitHub url instead of SSH
  • Clean up generated README
  • Add Business Software License as LICENSE
  • Link license in gemspec and README
  • Fix indentation and whitespace issues in .gemspec file
  • Remove script/ directory, since we now use GitHub Actions for CI
  • Clean up generated .gitignore
  • Fix link to developer documentation in README
  • Fix flagrant quote fail for required Rails engines

Issues

Pull Requests

Store Inverse Aspect Ratio on Dragonfly Models

Populate the :image_inverse_aspect_ratio automatically using Dragonfly, in order to reduce the amount of requests made to S3 in order to find out this information. This way, Dragonfly can store more assets in the cache.

Issues

Pull Requests

Prevent Duplicate Tags in Mongoid Models

When inserting tags into a taggable document, make sure their values are unique. This addresses an issue where incorrect tag counts were being displayed on the storefront.

Issues

Pull Requests

v3.4.16

4 years ago

Patch release notes for Workarea 3.4.16.

Customize Search Queries That Return an Exact Match

It's currently possible to customize search queries that return an exact match, but instead of seeing the customized results when you run the query, you'll be redirected to the product page since the StorefrontSearch::ExactMatches middleware stops further middleware from running and sets a redirect to the product path. To resolve the issue, Workarea will now ignore this middleware if a customization is present on the search response.

Discovered by Ryan Tulino of Syatt Media. Thanks Ryan!

Issues

Pull Requests

Prevent Empty Results In Trash

Remove a check for whether a given audit log entry is #restorable? in on the /admin/trash page to prevent empty results clogging up the pagination. Without this, admins will see blank pages if they delete enough nav taxon/release records at the same time.

Additionally, due to render_activity_entry rescuing a template error to return a blank string, results were still being seen in the trash when a model that doesn't explicitly have an activity partial defined is encountered. To resolve this issue, models that are tracked by Mongoid::AuditLog, without an explicit activity partial defined will be rendered using a generic partial, showing the class name and ID of the audited model, as something to render in the listing so that pages of blank results aren't shown.

Issues

Pull Requests

Use Current Host For Direct Upload CORS Headers

Direct uploads can fail locally if your Workarea.config.host is not set to the domain you are currently using in the browser. To prevent this, instead of reading from the configuration when ensuring CORS headers on the S3 bucket, use the ActionDispatch::Request from the controller to determine the correct URL for CORS in this instance. Addresses a problem whereby changing the domain (either accidentally or on-purpose) causes direct uploads to fail, since it can't create the proper CORS headers needed to transmit files into the bucket directly.

Issues

Pull Requests

Fix Randomly Failing System Test

Ensure test only asserts product details in ProductSystemTest. Recently viewed products were being accidentally clicked on and thus the incorrect information is being rendered to the screen, causing the test to fail. Scope selectors to the product details component to avoid this.

Issues

Pull Requests

v3.4.15

4 years ago

Patch release notes for Workarea 3.4.15.

Publish Releases In Background Job

When a release is published, but has too many changes, it can cause a request timeout because it can't be fully published within the allotted 15 seconds in production. To prevent this, Workarea now runs all release publishing in a background job. The success flash message for when a release is published has been updated to inform users that changes may take a little while to apply.

Issues

Pull Requests

Fix Incorrect Currency in Mongoid Money Types

Workarea's default values for the Money fields in Pricing::Override didn't previously change currency when Money.default_currency is re-configured in process (like in the case of a multi-site application with multiple currencies). Ensure that the correct currency is used by using an Integer type as the default, which will get converted into a Money type at runtime.

Issues

Pull Requests

Remove Minitest Plugin

This existed for CI purposes on Bamboo, and we don't need it here after moving to Github. It has been moved the workarea-ci gem for backwards compatibility.

Issues

Pull Requests

Multi-site config swappable lists

The Workarea::SwappableList class does not get duplicated correctly when Workarea.config.deep_dup is used. This was observed while using multi-site and attempting to change a swappable list for only one site. Define the #deep_dup method to return a new object instead of referencing the existing one.

Issues

Pull Requests

Update Default Admin Password

Change the default admin password when an app is seeded. #branding

Issues

Pull Requests

Fix Product Images URL from Seeds

Fixes the URL used to download product images in seed data.

Issues

Pull Requests

v3.4.13

4 years ago

Fixed some installation issues with v3.4.12.

v3.4.12

4 years ago

Patch release notes for Workarea 3.4.12. This is Workarea's first public release! As such, there are some larger changes worth noting when upgrading. Please read all these notes before updating your Gemfile!

Remove hardcoded ignored Rack::Attack IP addresses

Workarea out-of-the-box Rack::Attack configuration had hardcoded IP addresses for our offices and AlertLogic. Those have been removed and replaced with an ENV variable to configure it. Use WORKAREA_RACK_ATTACK_IGNORE_IP_ADDRESSES to specify ignored IP addresses like WORKAREA_RACK_ATTACK_IGNORE_IP_ADDRESSES=192.168.2/24,172.16.254.1

Updated seed data

To add a better demo and public-facing sample data, some of the seed data for Workarea has been reworked. You'll want to use pay special attention to the diff when using the upgrade tool if you've customized the seed data.

Removal of the workarea-ci gem

This gem was written specifically for the Workarea Commerce Cloud hosting, so it doesn't make much sense for the public version. We've removed this gem from the repository. The gem is still available on the Workarea gem server, so all you need to do is add gem 'workarea-ci' to your Gemfile after upgrading.

Display Relevant Flash Message When No Shipping Options Are Available

Improve the user experience when checkout cannot complete due to the site having no available shipping options for the user's shipping address.

Issues

Pull Requests

Disallow Negative Prices in Seed Data

It was formerly possible to generate a Pricing::Price that had a negative value in seeds. The ProductsSeeds#perform method now protects against this.

Issues

Pull Requests

Remove Test for Active Prices in Locale

This test did not pass in the real world when new locales are added. Previously, I18n.for_each_locale did not iterate over all locales because the locale was added to the wrong configuration setting. The test was updated to use Rails.application.config.i18n to better simulate what is used in the real world, but it was soon discovered that i18n fallbacks work in a very strange way compared to the rest of the gem. Because we can't guarantee that we need to include the I18n::Backend::Fallbacks module at the time of app initialization, we can't guarantee that fallbacks will be supported in the Pricing::SkuTest, so #test_active_prices has been removed for the time being. This test was mostly ensuring the functionality of i18n fallbacks rather than how our system handles them.

Discovered by Devan Hurst of Bounteous. Thanks Devan!

Issues

Pull Requests

Filter Blank Data From All Reports

When using a $divide operation in a MongoDB aggregation, neither number can equal 0 otherwise Mongo will throw an OperationFailure error. This has been avoided by filtering out any records where numbers that we divide are zero across the board. This error can typically happen when first developing an application. In addition, the unneeded SearchesWithoutResults report has been removed.

Issues

Pull Requests

Fix Order Status Lookup Route

The /orders/status/:order_id/:postal_code was being resolved by the #show action of OrdersController, when it really should be served by #lookup. Change the route and add a test ensuring that the route is being handled properly.

Discovered by Andy Sides of BVAccel. Thanks Andy!

Issues

Pull Requests

Render Shipping Details Append Point On Index

Move the admin.shipping_details append point from shippings#show (which is no longer rendered) over to shippings#index. Remove the shippings#show partial to reduce confusion since it is no longer being used.

Issues

Pull Requests

Fix Internal Server Error Page Not Rendering JSON

When an Internal Server Error is requested via /500.json, another error occurs when attempting to render the view for that request, because there's no internal template. This is not how our error handler is supposed to work, any format should be acceptable to render a 404 or 500. The syntax of the respond_to block in #render_error_page has been altered so that Workarea serves the custom content HTML when an HTML error occurs (e.g., most user-facing browser errors), and an empty body with a 500 error in the status code is returned for all other formats.

Issues

Pull Requests

v3.4.14

4 years ago

It's an unlucky number, what did you expect?