Big changes are on the way for WooCommerce. Mike Jolley, lead developer of WooCommerce, announced that WooCommerce 2.7 will be versioned 3.0.0 with a scheduled release date of April 4th. During the 2.7 beta testing phase, the team discovered a significant bug in the way that timestamps are handled.
“Essentially, some developers need a way to reliably get UTC timestamps as well as dates according to the site’s timezone,” Jolley said. “To resolve this we’re working on a solution which accepts either a UTC timestamp, or an ISO8601 datetime string, and returns a DateTime object so timezone information can be retrieved if needed. This approach is not compatible with the
get_date_x getters found in 2.7 beta.”
Beginning with WooCommerce 3.0.0, the project will use semantic versioning or SemVer. WooCommerce has incrementally versioned its releases similar to WordPress. For example, WooCommerce 2.5, 2.6, 2.7. Semantic versioning allows for three digit version numbers and should make it easier to discern major versions from maintenance and bug fix releases. The three digits stand for major, minor, and patch.
According to the SemVer site, each number is incremented when:
- MAJOR version for incompatible API changes.
- MINOR version when you add functionality in a backwards-compatible manner.
- PATCH version when you make backwards-compatible bug fixes.
Under this system, WooCommerce 3.0.0 is a major update with 3.1.0 being a minor update. The next major update will be 4.0.0. Developers should take note that in 3.0.0 RC1, the versioning and @since properties are relabeled to 3.0.0. “If you have used version_compare statements in your code, they will still work since 3.0.0 is greater than 2.7.0, however, you can change these for clarity,” Jolley said. Themes with template files versioned 2.7.0 may need to be updated to use 3.0.0 to prevent reports of outdated template files.
In addition to version changes and fixing major bugs, the team is allowing up to three weeks for 3.0.0 RC1 to be tested. The amount of time to test has been extended from one week to three based on feedback from extension developers.
“An RC is really the first point in time when people can look at the code and feel confident it’s probably not going to change a lot before the official release,” Brent Shepherd, founder of Prospress Inc. said. “With that in mind, having 3 months of beta testing, but only 1 week for the RC, doesn’t make a lot of sense. It makes sense to give more time in that later stage after the RC.”
Josh Kohlbach, a WooCommerce extension developer, also agreed with extending the RC testing time. “Currently from our company’s perspective we’ve had to put other priorities on hold in order to put WC2.7 changes ahead,” Kohlbach said. “The 2.7 changes we were holding off on doing until RC, which is what we normally do.”
“However, when it was announced that there would be only one week between, we figured that wouldn’t be enough time for proper testing and pushing updates on all of our products so we’re compatible on day one,” he said. “It just isn’t enough time so we, like many others by the sounds of it, started making our compatibility fixes around Beta 2 this time even though we knew there might be more changes coming down the pipe before RC gets here.”
Extension developers are praising the team for changing to a semantic versioning system and extending the time to test Release Candidates. “I’m very happy to see these changes,” Shepherd said. “Big props for making the tough call late in the release cycle. Hopefully it will help ensure a smoother release for all WC users of this version.”
“I think this is a really positive move forward for WooCommerce,” Kohlback said. “I for one want to thank you on behalf of all the third-party developers for being so open and taking on board all of our various points, really makes us happy to be part of the community!”
If all goes well, you can expect to see an update for WooCommerce in your WordPress dashboard on April 4th.
April 4/5 is going to a fun day for Plugin support bases starting with NZ/AU markets as they’ll hit update first (after automatic Plugin updaters; risky?). Brace! :D