With the aim to streamline our development process and enhance collaboration across our community, we will be merging the WooCommerce Blocks plugin into the WooCommerce monorepo.
Background
You may recall our merger of WooCommerce Admin into the monorepo in March 2022. Since then, we’ve been hard at work iterating and implementing improvements to fully realize the benefits of a monorepo. This includes the introduction of tools, automations, and additional plugins such as the Beta Tester and the new WooCommerce Docs plugin meant to support our initiative to centralize docs. We’ve also initiated a push to make the monorepo the central source of truth for all developer documentation. Given the success of the previous merge, we are now ready to take the next step by merging WooCommerce Blocks into WooCommerce Core.
What’s Changing
- Folder structure: The WooCommerce Blocks plugin will be integrated directly into WooCommerce Core with its PHP code in the /plugins/woocommerce/src folder and the Javascript in the /plugins/woocommerce-blocks folder.
- Assets: In the case of assets such as JavaScript and CSS in the WooCommerce Blocks Plugin, the build output will be moving. Currently, built assets for WooCommerce Blocks are shipped in
packages/woocommerce-blocks
; after the merge, they will be shipped inassets/client/blocks
. This should not pose any change for standard development processes. - Release cadence: WooCommerce Blocks Plugin was previously released every two weeks. After the merge, all updates for WooCommerce Blocks will be shipped as part of WooCommerce releases. Consumers of WooCommerce itself should not experience any changes in their day-to-day interactions. If you want a sneak peek at what is coming down the pipeline for WooCommerce Plugin, you can always check out the Beta Tester Plugin for WooCommerce.
Does this change affect me?
I am a developer, shop manager, or merchant who uses the WooCommerce plugin.
No, this change should not affect you. Prior to this change, the WooCommerce Blocks plugin was already being shipped with the WooCommerce monorepo releases, so it is unlikely that you will perceive any changes.
I am a user of the WooCommerce Blocks plugin
There will no longer be separate releases of the WooCommerce Blocks plugin. This will impact the frequency of Blocks related updates you are used to receiving, since you will only receive updates via WooCommerce. However, we are looking at ways to expand the cadence of releases for the Beta Tester Plugin.
I am a contributor to the WooCommerce Block plugin
Yes, this change will affect you. You will now need to follow the contribution instructions for the WooCommerce monorepo. The commands and setup may differ from what you are used to in the WooCommerce Blocks plugin. We’ve appreciated all the contributions, feedback and discussions folks have provided in the Woo Blocks repository. Open issues and discussions will be transferred to the monorepo using labels you are familiar with (for easier discovery). As a benefit, you will no longer need to wonder about where to go to contribute to Woo Blocks efforts and issue reporting is more streamlined.
Rollout Date
We’re targeting December 8th, 2023 for the merge of the folders. However, this change won’t be reflected in the releases until the release of WC 8.5 on Jan 9, 2024.
Monorepo Developer Experience Improvements
To ensure a smooth transition, we’re implementing several quality-of-life improvements as prerequisites to the merge:
- Replacing Turborepo: Exploring alternatives to Turborepo to enhance CI performance and improve local development experiences.
- Minimizing Unnecessary Workflow Executions: Refactoring checks to run minimally, reducing wait times for developers.
- Deprecating Legacy E2E Packages: Addressing performance issues by deprecating legacy Puppeteer packages in the monorepo.
- Optimizing Workflows: Implementing small tasks to optimize workflow performance, including sharding E2E tests.
- Deprecating Stand-alone Blocks Plugin & Merging into Core: Executing the merge using the monorepo-merge utility and transferring open issues, discussions and pull requests appropriately.
Feedback
We welcome feedback from the community. Your insights and suggestions are invaluable as we strive to make this transition seamless and beneficial for everyone involved.
Reach out to us in the comments below or in WooCommerce Community Slack if you have any questions. We will be providing additional support monitoring in the #monorepo
channel from the merge date to the release.
Leave a Reply