Releases: workarea-commerce/workarea
Release list
Workarea 3.4.19
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:
- Unscheduled changesets
- Scheduled changesets, ordered by the release's publish date,
descending - Today (if applicable)
- 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.
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
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
.gemspecfile - 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
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
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
It's an unlucky number, what did you expect?
Workarea v3.4.13
Fixed some installation issues with v3.4.12.
Workarea v3.4.12
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.