Skip to content

Releases: workarea-commerce/workarea

Workarea 3.4.19

Choose a tag to compare

@tubbo tubbo released this 17 Oct 13:56

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

All Day. Faraday.

Choose a tag to compare

@tubbo tubbo released this 17 Oct 13:55

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!

Workarea v3.4.17

Choose a tag to compare

@tubbo tubbo released this 02 Oct 15:57

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

Workarea v3.4.16

Choose a tag to compare

@tubbo tubbo released this 24 Sep 14:23

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

Workarea v3.4.15

Choose a tag to compare

@tubbo tubbo released this 24 Sep 14:23

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

Hotfixes for v3.4.13

Choose a tag to compare

@meowsus meowsus released this 27 Aug 15:16

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

Workarea v3.4.13

Choose a tag to compare

@tubbo tubbo released this 24 Sep 14:22

Fixed some installation issues with v3.4.12.

Workarea v3.4.12

Choose a tag to compare

@tubbo tubbo released this 24 Sep 14:21

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