Skip to content

v6.0.0

Compare
Choose a tag to compare
@devops-pwa-codebuild devops-pwa-codebuild released this 28 Apr 14:53
· 1354 commits to develop since this release

Release 6.0.0

NOTE:
This changelog only contains release notes for PWA Studio 6.0.0.
For older release notes, see PWA Studio releases.

Table of contents

What's new in 6.0.0

PWA Studio 6.0.0 contains new features, refactors, and various improvements.

Initial extensibility framework

This release contains initial work for an extensibility framework in PWA Studio.
This framework gives developers the ability to create an extensibility API for their storefront or write plugins that can tap into those API and modify storefront logic.

An example of this framework in action can be found in the Venia storefront, which exposes an API and installs the Page Builder PWA package as a dependency.

Previously the only way to add Page Builder features was to have a copy of the Page Builder module's source code inside the project itself.
This had the unfortunate side effect of you having to manually apply any code changes to your copy of Page Builder whenever a new version releases.
With the new extensibility framework, updating is as easy as installing the new version.

Caching and data fetching improvements

This release contains improved caching logic and other data fetching optimizations in the Peregrine and Venia UI component libraries.
These components have been refactored to take advantage of Apollo cache features to reduce overfetching or prevent the storage of sensitive data.

Shopping cart page components

This release adds components that can be used for a full page shopping cart experience.
The standalone cart page for Venia is still under development as of this release, but you can view the current progress at: https://develop.pwa-venia.com/cart

PWA Studio tutorials

Since the last release, the PWA Studio doc site has created a new tutorial section for PWA Studio fundamentals.
Topics in this section will be more instructional than the topics found in the Getting started section.

Currently, the following drafts have been published (with more to come):

Thanks to community member rossmc for contributing the drafts for this these topics!

Pull requests merged in this release

Venia (storefront and visual component library)

Description Change type PR
Added current applied Gift Card balance to UI Feature #2156
Added "Edit Item" feature from mini-cart into Cart Page kebab menu Feature #2191
Added an error toast for invalid Product quantities Feature #2196
Created initial skeleton for a checkout page Feature #2181
Implemented sorting for Category page Feature #2133
Added Gift Cards support to Cart page Feature #2124
Added Shipping Method to Cart page Feature #2123
Added a product quantity stepper to cart items Feature #2115
Added Gift options support in cart page Feature #2114
Added intermediate level breadcrumbs Feature #2113
Added Cart Coupons functionality Feature #2108
Added Cart Price Summary to cart page Feature #2092
Created new ProductListing Component for cart page Feature #2094
Added PriceAdjustments and Accordion components to cart page Feature #2090
Created a standalone Cart Page Feature #2084
Removed client-side Email Validation on Signin, Create Acount, and Forgot Password forms Update #2157
Refactored JSX in some modules to follow standards for conditionals Refactor #2200
Refactored usage of isFastNetwork() in service worker. Refactor #2193
Refactored Accordion component to close sections instead of unmounting them Refactor #2149
Refactored ErrorView to be more scalable Refactor #2116
Refactored cart style to fit design intent Refactor #2104
Created Firefox-specific CSS to fix text alignment issues Bugfix #2233
Fixed Email field validation bug in Billing Information by removing field Bugfix #2216
Fixed style for quantity field/steppers in Firefox Bugfix #2206
Fixed Cart page sign out error when cart does not exist in cache Bugfix #2189
Fixed a bug in the Cart page where items showed incorrect configurable options Bugfix #2167
Fixed a bug related to search trigger focus Bugfix #2165
Fixed venia-static files not loading out-of-the box with scaffolding command Bugfix #2143
Fixed the incorrect export for PriceSummaryQuery Bugfix #2142
Fixed incorrect cart page title Bugfix #2140
Updated informed version to fix Windows 10/Edge issues Bugfix #2129
Fixed bug that rendered price components when cart is empty Bugfix #2112
Fixed validator for venia-ui Bugfix #2095
Fixed search result counts not matching in different components Bugfix #2037

Peregrine library

Description Change type PR
Enabled mutation queueing to prevent race conditions when multiple mutations are in flight Feature #2215
Adds validation and input trimming for Gift Card input field Feature #2175
Enabled real Filtering functionality by connect to GraphQL Feature #2166
Refactored Apollo cache use to prevent overfetching Refactor #2250
Removed mutation PII while still updating the cache correctly Refactor #2240
Fixed a bug with the breadcrumbs in the Product Details Page talon for products without categories Bugfix #2224
Fixed bug that showed stale suggestions during searches Bugfix #2150
Fixed Accordion talon bugs that kept resetting sections Bugfix #2147

Page Builder plugin

Description Change type PR
Re-implemented Page Builder as an extension Feature #2137
Added support for Page Builder's Video Background feature Feature #2187
Fixed video alignment background in embedded videos Bugfix #2201
Fixed bug that would cause extensions utilizing Page Builder to break when upgraded Bugfix #2199
Fixed bug where Row Full-Width contents were horizontally positioned incorrectly in desktop Bugfix #2146
Fixed escaped HTML bug that broke the HTML content type Bugfix #2283

Build tools

Description Change type PR
Added interception targets for environmental variables Feature #2174
Add ability to conditionally bundle CE or EE features in Venia Feature #2121
Changed default value and docs for DEV_SERVER_SERVICE_WORKER_ENABLED environment variable Update #2148
Refactored image processing for 5x faster streaming image optimization with no SSL failures Refactor #2005
Fixed RootComponentsPlugin to be IE compatible Bugfix #2169
Removed out of the box tests from scaffolding command Bugfix #2321
Fixed missing extension files in newly scaffolded projects Bugfix #2305

UPWARD

Description Change type PR
Fixed binary file reading Bugfix #2050

Documentation

Description Change type PR
Revised and published PWA Studio fundamentals intro and project setup topics Documentation #2179
Created new tutorial for adding a static route Documentation #2249
Added updates to updates-to-into-project-setup draft Draft #2083
Added preparing-to-go-live tutorial draft doc Draft #2081
Added manage-state-with-redux tutorial draft doc Draft #2079
Added use-magentos-graphql-api tutorial draft doc Draft #2077
Added explore-graphql tutorial draft doc Draft #2075
Added reuse-a-venia-component tutorial draft doc Draft #2073
Added component-state tutorial draft doc Draft #2071
Added css-modules tutorial draft doc Draft #2069
Added props-proptypes tutorial draft doc Draft #2067
Added update-site-footer tutorial draft doc Draft #2065
Added add-a-static-route tutorial draft doc Draft #2063
Added project-structure-and-routing tutorial draft doc Draft #2061
Updated Cloud deployment topic Update #2235
Updated code block in doc to better work with copying and pasting Update #2229
Updated the contribution guide Update #2218
Updated dependencies and build script Update #2195
Updated setup topic Update #2192
Updated contribution guidelines to make explicit the need to sign Adobe's CLA Update #2125
Fixed broken reference doc generator Bugfix #2183
Added a missing variable in a topic Bugfix #2153

Misc

Description Change type PR
Added new variable to support AWS builds Feature #2144
Added ability to use .jsx files Feature #2128
Added an App Bar section to the styleguide Feature #2119
Added Drawer Footer to styleguide Feature #2093
Added a button section to the styleguide Feature #2088
Added color section to styleguide Feature #2030
Added typography section to styleguide Feature #2013
Added venia-concept dist directory to the npmignore file Update #2225
Upgraded dependencies Update #2098
Fixed broken summarizeEvents function Bugfix #2194
Fixed broken VSCode Jest Plugin Bugfix #2039

Upgrading from a previous version

The method for updating to 6.0.0 from a previous version depends on how PWA Studio is incorporated into your project.
The following are common use cases we have identified and how to update the project code.

PWA Studio fork

Many PWA Studio users have forked the PWA Studio Git repository.
Even though their codebase may have diverged a great deal from the current codebase, there is still a Git relationship.

Upgrade method: Update using Git

Pull and Merge the changes from the upstream repository using Git.
Most of the conflicts will be in components that we have fully refactored.

We recommend merging the library code we changed and updating component calls with any new prop signatures introduced in this version.

Manual code copies

Some PWA Studio users have copied parts of the code into their own projects.
This is similar to the Git workflow, but without the merging tools Git provides.

Upgrade method: Manual copy updates

Updating this code involves manually copying updates for the code they use.
New code may also need to be copied over if the updated code depends on it.

This method can be a chore, and we hope that some of the features in 5.0.0 will help these users migrate to a package management approach.

NPM packages

Some users have imported the PWA Studio libraries using NPM.
This is the easiest way to work with the released versions of PWA Studio.

Upgrade method: Update package.json

To upgrade to 6.0.0, update the project's package.json file and change the dependency version for PWA Studio.