Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Release: 4.7.0 #3966

Merged
merged 6 commits into from
Mar 16, 2021
Merged

Release: 4.7.0 #3966

merged 6 commits into from
Mar 16, 2021

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Mar 16, 2021

This is the release pull request for WooCommerce Blocks plugin 4.7.0.

Changelog


#### Enhancements

- A new configuration property is available to registered payment methods for additional logic handling of saved payment method tokens. ([3961](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3961))
- Provided billing data to payment method extensions so they can decide if payment is possible. ([3922](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3922))
- Prevent errant payment methods from keeping Cart and Checkout blocks from loading. ([3920](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3920))
- Fix block elements that don't play well with dark backgrounds. ([3887](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3887))

#### Bug Fixes

- Remove extra padding from payment methods with no description. ([3952](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3952))
- Fix "save payment" checkbox not showing for payment methods. ([3950](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3950))
- Fix cart preview when shipping rates are set to be hidden until an address is entered. ([3946](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3946))
- Sync cart item quantity if its Implicitly changed. ([3907](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3907))
- Fix FSE not being visible when WC Blocks was enabled. ([3898](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3898))
- Ensure sale badges have a uniform height in the Cart block. ([3897](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3897))



Communication

This section is for any notes related to communicating the release. Please include any extra details with each item as needed.

This release introduces: Several fixes around payment gateway display and extensibility interface, more stability around payment methods, styling fixes, and general fixes, check the changelog below for more information.

In this section document a summary of what's in the release. Keep this brief, and link to the changelog for more detail.

Prepared Updates

The following documentation, blog posts, and changelog updates are prepared for the release:

In this section you are highlighting all the public facing documentation that is related to the release. Feel free to remove anything that doesn't apply for this release.

Release announcement: Link to release announcement post on developer.woocommerce.com (published after release)

Relevant developer documentation:
Link(s) to any developer documentation related to the release

Happiness Engineering or Happiness / Support:
Link to any special instructions or important support notes for this release.

Quality

This section is for any notes related to quality around the release Please include any extra details with each item as needed. This can include notes about why something isn't checked or expanding info on your response to an item.

  • Changes in this release are covered by Automated Tests.

    > This section is for confirming that the release changeset is covered by automated tests. If not, please leave some details on why not and any relevant information indicating confidence without those tests.
    
    • Unit tests
    • E2E tests
    • for each supported WordPress and WooCommerce core versions.
  • This release has been tested on the following platforms:

    • mobile
    • desktop
  • This release affects public facing REST APIs.

    • It conforms to REST API versioning policy.
  • This release impacts other extensions or backward compatibility.

    • The release changes the signature of public methods or functions
      • This is documented (see: Enter a link to the documentation here)
    • The release affects filters or action hooks.
      • This is documented (see: Enter a link to the documentation here)
  • Link to testing instructions for this release: https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/07dd08d6348d17d30ade8a255ac70cb3390d16bf/docs/testing/releases/470.md

  • The release has a negative performance impact on sites.

    • There are new assets (JavaScript or CSS bundles)
    • There is an increase to the size of JavaScrip or CSS bundles) please include rationale for this increase
    • Other negative performance impacts (if yes, include list below)
  • The release has positive performance impact on sites. If checked, please document these improvements here.

Additional Notes

This section is for additional notes related to the release.


🚀 This pull request was generated by the automations bot triggered by the creation of the branch: release/4.7.0. cc @senadir

@github-actions
Copy link
Contributor Author

github-actions bot commented Mar 16, 2021

The release pull request has been created! This checklist is a guide to follow for the remainder of the release process. You can check off each item in this list once completed.

  • Checkout the release branch locally.

Initial Preparation

  • Add the changelog to readme.txt
    • Add the version and date to the changelog section within readme.txt, e.g. = 4.7.0 - YYYY-MM-DD =
    • Copy the changelog from the pull request description above into this new section
  • Update compatibility sections (if applicable). Note: Do not change the stable tag or plugin version; this is automated.
    • Update Requires at least, Tested up to, and Requires PHP sections at the top of readme.txt.
    • Update Requires at least, Requires PHP, WC requires at least, and WC tested up to at the top of woocommerce-gutenberg-products-block.php
  • Push above changes to the release branch.

Write Testing Notes

When creating testing notes, please write them from the perspective of a "user" (merchant) familiar with WooCommerce. So you don't have to spell out exact steps for common setup scenarios (eg. "Create a product"), but do be specific about the thing being tested. Include screenshots demonstrating expectations where that will be helpful.

Additionally, make sure to differentiate between things in the testing notes that only apply to the feature plugin and things that apply when included in WooCommerce core as there may be variations there.

  • Run npm ci
  • Run npm run package-plugin:deploy. This will create a zip of the current branch build locally.
  • Create testing notes for the release. You can usually go through the pull requests linked in the changelog and grab testing notes from each pull.
    • Add the notes to docs/testing/releases
    • Update the docs/testing/releases/README.md file index.
  • Copy a link to the release zip you created earlier into the testing notes. To generate the link you can upload the zip as an attachment in a GitHub comment and then just copy the path (without publishing the comment).
  • Commit and push the testing docs to the release branch.
  • Smoke test built release zip using the testing instructions you created:
    • At least one other person should test the built zip - ask a teammate to help out.
    • Test in a clean environment, e.g. Jurassic.Ninja site.
    • Test existing WooCommerce Blocks content works correctly after update (no block validation errors).
    • Test to confirm blocks are available and work correctly in oldest supported WordPress version (e.g. 5.3).
    • Confidence check - check blocks are available and function.
    • Test to confirm new features/fixes are working correctly.
    • Smoke test – test a cross section of core functionality.

Update Pull Request description and get approvals

  • Go through the description of the release pull request and edit it to update all the sections and checklist instructions there.
  • Ask a team member to review the changes in the release pull request and for anyone who has done testing that they approve the pull request.

Ensure hub is set up and you're authenticated

  • Make sure you've got hub installed (brew install hub)
  • Make sure hub api user returns JSON with information about your GitHub user account, if it doesn't:
    • Create a GitHub access token with the repo permission.
    • Set the environment variables: GITHUB_USERNAME with your GitHub Username, and GITHUB_TOKEN with the token you just generated. (You may want to add these to .bashrc or the equivalent)
    • Run hub api user again and ensure JSON with information about your GitHub user account is returned.

Push the button - Deploy!

  • Execute npm run deploy
    • Note: the script automatically updates version numbers (commits on your behalf).
    • ALERT: This script will ask you if this release will be deployed to WordPress.org. You should answer yes for this release even if it is a pre-release. A GitHub release will automatically be created and this will trigger a workflow that automatically deploys the plugin to WordPress.org.
  • Edit the GitHub release and copy changelog into the release notes. Ensure there is a release with the correct version (i.e. the one we're releasing right now). Do not publish any dev tags as a release.
  • The #team-rubik slack instance will be notified about the progress with the WordPress.org deploy. Watch for that. If anything goes wrong, an error will be reported and you can followup via the GitHub actions tab and the log for that workflow.

After Workflow completes

  • After the wp.org workflow completes, confirm the following
  • Merge this pull request back into trunk. This may have merge conflicts needing resolved if there are any cherry-picked commits in the release branch.
  • Update version on the trunk branch to be for the next version of the plugin and include the dev suffix (e.g. something like 2.6-dev) for the next version.
  • Update the schedules p2 with the shipped date for the release (Pca54o-1N-p2).
  • Clean up the release milestone and Zenhub.
    • Edit the GitHub milestone and add the current date as the due date (this is used to track ship date as well).
    • Close the milestone.
    • Remove any unfinished issues from the Zenhub epics completed by this release and then close the epics.

Publish posts

  • Post release announcement on WooCommerce Developer Blog. Use previous posts for inspiration. If the release contains new features, or API changes, explain what's new so Woo devs/builders/merchants can get excited about it. This post can take time to get right - get feedback from the team, and don't rush it :)
    • Ensure the release notes are included in the post verbatim.
    • Don't forget to use category Blocks for the post.
  • Announce the release internally (#woo-announcements slack).
  • Update user-facing documentation as needed. When the plugin is released, ensure user-facing documentation is kept up to date with new blocks and compatibility information. The dev team should update documents in collaboration with support team and WooCommerce docs guild. In particular, please review and update as needed:
    • Are there any new blocks in this release? Ensure they have adequate user documentation.
    • Ensure any major improvements or changes are documented.
    • Update minimum supported versions (WordPress, WooCommerce Core) and other requirements where necessary, including:

Pull request in WooCommerce Core for Package update

This only needs to be done if this release is the last release of the feature plugin before code freeze in the WooCommerce core cycle. If this condition doesn't exist you can skip this section.

  • Create a pull request for updating the package in the WooCommerce Core Repository that bumps the package version for the blocks package to the version being pulled in.
    • The content for the pull release can follow this example. Essentially you link to all the important things that have already been prepared. Note, you need to make sure you link to all the related documents for the feature plugin releases since the last package version bump in Woo Core.
    • Run through the testing checklist to ensure everything works in that branch for that package bump. Note: Testing should include ensuring any features/new blocks that are supposed to be behind feature gating for the core merge of this package update are working as expected.
    • Testing should include completing the Smoke testing checklist. It's up to you to verify that those tests have been done.
    • Verify and make any additional edits to the pull request description for things like: Changelog to be included with WooCommerce core, additional communication that might be needed elsewhere, additional marketing communication notes that may be needed etc.
    • After the checklist is complete and the testing is done, it will be up to the WooCommerce core team to approve and merge the pull request.
  • Make sure you join the #woo-core-releases Slack channel to represent Woo Blocks for the release of WooCommerce core this version is included in.
🚀 This comment was generated by the automations bot triggered by the creation of the branch: release/4.7.0. cc @senadir

@github-actions github-actions bot requested a review from a team as a code owner March 16, 2021 10:49
@github-actions github-actions bot requested review from opr and removed request for a team March 16, 2021 10:49
@github-actions
Copy link
Contributor Author

github-actions bot commented Mar 16, 2021

Size Change: +2.71 kB (0%)

Total Size: 1.16 MB

Filename Size Change
build/active-filters-frontend.js 8.62 kB -7 B (0%)
build/active-filters.js 8.71 kB -5 B (0%)
build/all-products-frontend.js 35.1 kB +180 B (+1%)
build/all-products.js 37 kB +212 B (+1%)
build/all-reviews.js 9.91 kB +1 B (0%)
build/atomic-block-components/add-to-cart--atomic-block-components/button-frontend.js 1.97 kB -2 B (0%)
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 3.59 kB -7 B (0%)
build/atomic-block-components/add-to-cart--atomic-block-components/image--atomic-block-components/title.js 336 B +1 B (0%)
build/atomic-block-components/add-to-cart-frontend.js 8.09 kB -1 B (0%)
build/atomic-block-components/add-to-cart.js 7.74 kB +2 B (0%)
build/atomic-block-components/button-frontend.js 1.04 kB +209 B (+25%) 🚨
build/atomic-block-components/button.js 1.05 kB +211 B (+25%) 🚨
build/atomic-block-components/category-list-frontend.js 470 B -1 B (0%)
build/atomic-block-components/image-frontend.js 1.77 kB -1 B (0%)
build/atomic-block-components/price-frontend.js 1.98 kB -1 B (0%)
build/atomic-block-components/rating-frontend.js 520 B +1 B (0%)
build/atomic-block-components/rating.js 525 B -1 B (0%)
build/atomic-block-components/sale-badge.js 871 B +3 B (0%)
build/atomic-block-components/sku-frontend.js 391 B -1 B (0%)
build/atomic-block-components/summary-frontend.js 922 B +2 B (0%)
build/atomic-block-components/summary.js 924 B -1 B (0%)
build/atomic-block-components/title-frontend.js 1.35 kB -2 B (0%)
build/atomic-block-components/title.js 1.21 kB -1 B (0%)
build/attribute-filter-frontend.js 18.4 kB -1 B (0%)
build/attribute-filter.js 12.5 kB -7 B (0%)
build/blocks.js 3.5 kB +1 B (0%)
build/cart-frontend.js 76.4 kB +256 B (0%)
build/cart.js 39.4 kB +285 B (+1%)
build/checkout-frontend.js 80.9 kB +13 B (0%)
build/checkout.js 41.9 kB +3 B (0%)
build/featured-product.js 10.1 kB +1 B (0%)
build/handpicked-products.js 7.54 kB +2 B (0%)
build/price-filter-frontend.js 14.7 kB +2 B (0%)
build/price-filter.js 10 kB -4 B (0%)
build/product-best-sellers.js 7.61 kB +2 B (0%)
build/product-categories.js 3.23 kB -2 B (0%)
build/product-category.js 8.56 kB +5 B (0%)
build/product-new.js 7.78 kB +2 B (0%)
build/product-on-sale.js 8.17 kB -2 B (0%)
build/product-search.js 3.61 kB +1 B (0%)
build/product-tag.js 6.61 kB +1 B (0%)
build/product-top-rated.js 7.75 kB +2 B (0%)
build/products-by-attribute.js 8.54 kB -1 B (0%)
build/reviews-by-category.js 12 kB -1 B (0%)
build/reviews-frontend.js 9.58 kB -1 B (0%)
build/single-product-frontend.js 38.1 kB +6 B (0%)
build/single-product.js 10.3 kB +3 B (0%)
build/vendors--atomic-block-components/price-frontend.js 6.54 kB +2 B (0%)
build/vendors.js 419 kB -2 B (0%)
build/wc-blocks-google-analytics.js 1.35 kB +1.35 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
build/atomic-block-components/category-list.js 476 B 0 B
build/atomic-block-components/image.js 1.24 kB 0 B
build/atomic-block-components/price.js 2 kB 0 B
build/atomic-block-components/sale-badge-frontend.js 861 B 0 B
build/atomic-block-components/sku.js 394 B 0 B
build/atomic-block-components/stock-indicator-frontend.js 569 B 0 B
build/atomic-block-components/stock-indicator.js 573 B 0 B
build/atomic-block-components/tag-list-frontend.js 467 B 0 B
build/atomic-block-components/tag-list.js 473 B 0 B
build/blocks-checkout.js 17 kB 0 B
build/editor-rtl.css 14.9 kB 0 B
build/editor.css 14.9 kB 0 B
build/featured-category.js 7.86 kB 0 B
build/price-format.js 1.46 kB 0 B
build/reviews-by-product.js 13.5 kB 0 B
build/style-rtl.css 18.4 kB 0 B
build/style.css 18.4 kB 0 B
build/vendors-style-rtl.css 1.05 kB 0 B
build/vendors-style.css 1.05 kB 0 B
build/wc-blocks-data.js 7.2 kB 0 B
build/wc-blocks-middleware.js 1.11 kB 0 B
build/wc-blocks-registry.js 2.74 kB 0 B
build/wc-payment-method-bacs.js 812 B 0 B
build/wc-payment-method-cheque.js 807 B 0 B
build/wc-payment-method-cod.js 903 B 0 B
build/wc-payment-method-paypal.js 844 B 0 B
build/wc-payment-method-stripe.js 12.3 kB 0 B
build/wc-settings.js 2.43 kB 0 B
build/wc-shared-context.js 1.53 kB 0 B
build/wc-shared-hocs.js 1.72 kB 0 B

compressed-size-action

Copy link
Member

@mikejolley mikejolley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've smoked tested everything in the list except for express payments. The only issue I noted was lack of margin/padding here:

Screenshot 2021-03-16 at 14 51 51

@ralucaStan
Copy link
Contributor

Found a small bug while smoke testing. In the Cart block, I enter a coupon code, it’s invalid and then I click on Proceed to checkout. The click does not work but the button receives focus and the error of the coupon dissappears. I have to click again for the button to work and take me to Checkout.
Before click:
Screenshot 2021-03-16 at 15 21 02
After click:
Screenshot 2021-03-16 at 15 35 28

@ralucaStan
Copy link
Contributor

ralucaStan commented Mar 16, 2021

After I use the change the address form in the Cart Block and the address updates I see this warning in the console.
It also appear when I change the city in the Checkout block.

react_devtools_backend.js:2430 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.
    in Ot (created by St)
    in St (created by __experimentalOrderShippingPackagesFill)
    in __experimentalOrderShippingPackagesFill (created by a)
    in a
overrideMethod @ react_devtools_backend.js:2430
printWarning @ react-dom.js?ver=16.13.1:82
error @ react-dom.js?ver=16.13.1:54
warnAboutUpdateOnUnmountedFiberInDEV @ react-dom.js?ver=16.13.1:23296
scheduleUpdateOnFiber @ react-dom.js?ver=16.13.1:21304
dispatchAction @ react-dom.js?ver=16.13.1:15795
Ot.Object.rerender @ blocks-checkout.js?ver=cd6159865e22054fbdfc6c1c4cf91fe8:6
(anonymous) @ blocks-checkout.js?ver=cd6159865e22054fbdfc6c1c4cf91fe8:6
(anonymous) @ blocks-checkout.js?ver=cd6159865e22054fbdfc6c1c4cf91fe8:6
(anonymous) @ blocks-checkout.js?ver=cd6159865e22054fbdfc6c1c4cf91fe8:6
commitHookEffectListMount @ react-dom.js?ver=16.13.1:19866
commitLifeCycles @ react-dom.js?ver=16.13.1:19922
commitLayoutEffects @ react-dom.js?ver=16.13.1:22938
callCallback @ react-dom.js?ver=16.13.1:182
invokeGuardedCallbackDev @ react-dom.js?ver=16.13.1:231
invokeGuardedCallback @ react-dom.js?ver=16.13.1:286
commitRootImpl @ react-dom.js?ver=16.13.1:22676
unstable_runWithPriority @ react.js?ver=16.13.1:2685
runWithPriority$1 @ react-dom.js?ver=16.13.1:11174
commitRoot @ react-dom.js?ver=16.13.1:22516
finishSyncRender @ react-dom.js?ver=16.13.1:21942
performSyncWorkOnRoot @ react-dom.js?ver=16.13.1:21928
(anonymous) @ react-dom.js?ver=16.13.1:11224
unstable_runWithPriority @ react.js?ver=16.13.1:2685
runWithPriority$1 @ react-dom.js?ver=16.13.1:11174
flushSyncCallbackQueueImpl @ react-dom.js?ver=16.13.1:11219
flushSyncCallbackQueue @ react-dom.js?ver=16.13.1:11207
flushPassiveEffectsImpl @ react-dom.js?ver=16.13.1:23018
unstable_runWithPriority @ react.js?ver=16.13.1:2685
runWithPriority$1 @ react-dom.js?ver=16.13.1:11174
flushPassiveEffects @ react-dom.js?ver=16.13.1:22955
(anonymous) @ react-dom.js?ver=16.13.1:22834
workLoop @ react.js?ver=16.13.1:2629
flushWork @ react.js?ver=16.13.1:2584
performWorkUntilDeadline @ react.js?ver=16.13.1:2196
Show 5 more frames

@senadir
Copy link
Member

senadir commented Mar 16, 2021

@ralucaStan I was able to reproduce the coupon jump issue in 4.6.0 so I'm not going to fix it now, can you fill an issue report?

@senadir
Copy link
Member

senadir commented Mar 16, 2021

The state no-op is upstream in Gutenberg WordPress/gutenberg#28478

Copy link
Contributor

@ralucaStan ralucaStan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Smoke testing done, see my two comments with the things I found.

@senadir senadir merged commit 0253525 into trunk Mar 16, 2021
@senadir senadir deleted the release/4.7.0 branch March 16, 2021 16:33
@ralucaStan
Copy link
Contributor

ralucaStan commented Mar 16, 2021

@ralucaStan I was able to reproduce the coupon jump issue in 4.6.0 so I'm not going to fix it now, can you fill an issue report?

Sure, #3968

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants