Skip to content

v3.0.0

Compare
Choose a tag to compare
@dpatil-magento dpatil-magento released this 25 Jun 14:56
· 1909 commits to develop since this release

Release 3.0.0

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

Table of contents

What's new in 3.0.0

PWA Studio 3.0.0 contains improvements, new features, and some breaking changes.

Summary of major changes

  • Peregrine hooks:
    Custom React Hooks that contain data and state management logic has been added to the Peregrine library.
    These hooks allow developers to easily create functional components that focus on presentational logic.
    These also allow for a more modular use of PWA logic and easier "restyling" of Venia (or any PWA storefront built using PWA Studio).

Summary of breaking changes

  • PR #1169 includes the following breaking changes:

    • Removed some public user actions
    • Prop type removed in the CreateAccount component
    • Deleted the ErrorDisplay component
    • Deleted the Input component
  • PR #1078 includes the following breaking changes:

    • SearchBar component converted into a React hook that uses custom Peregrine hooks

Peregrine changes

Change type Description PR
Feature New custom React hooks #1078
Update Upgrade react-router-dom to 5.0.0 #1063

UPWARD changes

Change type Description PR
Feature New resolver added: UrlResolver #1058, #1175

Venia changes

Change type Description PR
Feature New SwatchTooltip component #956
Feature Focus search input on search icon button click #1019
Update Improve the usability of the "Remove item" feature in the MiniCart #882
Tests Add component unit tests #1027
Bugfix Make Create Account and Sign In input style consistent #1169
Bugfix Populate Create Account fields with correct values after guest checkout #1153
Bugfix Fix expired guest cart errors #1150
Bugfix Fix header logo width style #1070
Bugfix Disable adding to cart until product options are selected #1097
Bugfix Disable update cart button until product options are selected #1125
Bugfix Update div tag with Fragment #1103
Bugfix Fix configurable media loading issue #1094
Bugfix Use placeholder in carousel while loading next image #1085
Bugfix Add / to graphql validation endpoint #1045
Bugfix Fix makeUrl for Fastly #1039
Bugfix Hide menu item from navigation if it is disabled in the Magento admin #1022
Bugfix Prevent adding to cart during rapid multi-clicking #910

Buildpack changes

Change type Description PR
Update Update workbox-webpack-plugin to v4 #1102

Misc project changes

Change type Description PR
Update Update eslint configuration version #1088
Infrastructure CI/CD and DevOps fixes and improvements #1132, #1155, #1087, #1043
Infrastructure GitHub template updates #1077, #1048

Documentation changes

Change type Description PR
Documentation Explainer comments added to the venia-upward.yml file #1174
Documentation New reference docs for Peregrine hooks #1253
Documentation New Client side caching topic #1152
Documentation Hello UPWARD tutorial #1080
Update Add explanation to Magento compatibility table #1059
Feature Documentation linting tool added #1140, #1177
Bugfix Editorial and minor content fixes #1171, #1167, #1158, #1139, #1109, #1020, #1000

Updating from 2.1.0

The method for updating to 3.0.0 from 2.1.0 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 3.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 3.0.0, update the project's package.json file and change the dependency version for PWA Studio.