Releases in the past year
With WooCommerce 3.7 we started the journey towards smaller, more frequent, and more stable releases, with multiple fix releases being an exception rather than a rule. We got there by switching the fundamental principle of our releases from being feature-based (like 3.5 or 3.6) with a relatively long time between minor releases and a high number of follow up fix releases, to being time-based and regular.
In the last 6 months, we’ve perfected our process and adapted to a regular 2-month cycle. We delivered releases 3.8 through 4.1 using this 2-month release train process. However, we believed we could do better and thus we started streamlining our release process even more to achieve a regular monthly release cycle.
The first release we produced using the monthly release cadence was WooCommerce 4.2 and we followed that up with WooCommerce 4.3 just last week. As we would like to continue bringing value to our merchants and developers more often, in smaller and easy to update packages, we will be continuing with a monthly release cadence going forward. To provide clear expectations and bring more predictability to our releases, we’ve decided to publish a release calendar for the upcoming months.
We modeled a lot of our release process changes on similar approaches that the Jetpack team has used to deliver monthly releases for 3 years now. In doing so, we landed on the same release day that they use, and have found that it adds unnecessary complexity when using both plugins (both to us as developers, and to anyone using those plugins on their site). With that in mind, we are moving our releases from the first Tuesday of every month to the second one.
Please find the planned release dates for WooCommerce core minor releases below. We’re starting using the second Tuesday of the month principle in September with version 4.5 planned for September 8th. In addition, we’ve decided to keep the releases feature-light during November and December where most merchants experience high demand from their customers. We encourage everyone to manage their own update schedule appropriately, based on the needs of their store. If we decide to release a major version, we plan to announce it at least 2 cycles in advance. As we’ve internally discussed the best possible date, we’ve started preparing the August release for August 18th, so the next release will be an exception to the rule above.
Releases will always be on the second Tuesday of every month, unless there is a specific need to move it.
Release process & quality
Before each release, we go through a stabilization process for all modifications in that version. We start with a code freeze that is shortly followed by a one week beta period. During this phase, we perform the first set of manual tests, automated compatibility checks with all extensions in our marketplace, and evaluate performance changes and potential regressions. After the beta period, we enter a two-week release candidate phase, where we go through additional rounds of manual testing using multiple popular hosting providers, some of the most popular themes and plugins. We are also thankful for all the effort from external testers who regularly help us to ensure we release a stable package.
Throughout the pre-release period, we try to keep the number of changes to a minimum to ensure the final product is stable and contains no critical errors. The package that is released at the end is what you can update to when you click the Update button in the WordPress admin interface.
In addition to the steps outlined above which should ensure fewer conflicts and bugs, we’re also updating our day to day work to test every code change more thoroughly than ever before. We’re adding new unit tests for all the code we touch to maintain consistent operation. We’re identifying the most important merchant interactions throughout WooCommerce and covering them with end to end tests that help us identify regressions much earlier, thus providing a quick feedback loop to all the developers contributing to WooCommerce.
Through these changes, we hope to bring our customers value more frequently, while also improving the stability of the WooCommerce platform and everything built on top of it.