v6.0.0
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.