April saw the release of the latest version of Magento Enterprise Edition (1.14.2.0), bringing in the usual assortment of new features and bug fixes. While we wait for the corresponding release of Community Edition 1.9.2.0 (1.9.1.1 is basically 1.9.1.0 with the patch for SUPEE-5344 applied), we've put together some notes on the release based on a quick look through the changes.
With each new release, we first review the release notes for a summary of the changes, and these have improved a great deal in more recent releases. However, there are still points that would benefit from further explanation, such as:
- Product Visibility set to "Search" works correctly.
- Widgets can be added to CMS pages.
- Saving a customer account from the Admin no longer returns an error.
These issues all sound quite serious, however as far as we know the features were working more or less correctly in past releases. Without an explanation of how these bugs were fixed, or indeed what they actually were, it is difficult to understand the applicability of the changes to any particular installation.
In order to identify exactly what has changed so that we can understand the implications more fully, it can be helpful to manually review the changes between releases in the form of a patch. To do so, we first create our own patch by unpacking a copy of the new release into a "magento-new" directory, alongside a copy of the previous release in a "magento-old" directory. The patch can then be generated like so:
diff -r -u -N magento-old/app magento-new/app > app.patch
We split up each top level directory of the Magento codebase (app, lib, js, etc.) to make it a bit easier to review, so the command should be repeated for each directory of interest in the codebase. In the past (most recently 1.12.0.0-1.12.0.1), Magento released official patches as a means of upgrading rather than full release archives only, which is something that would be great to see brought back.
With our patches in hand, we can begin to review the changes in detail.
License headers
We'll get the boring one out of the way first. Each year, one of the first releases sees a change to every file, due to a desire to update the copyright year in all of the license headers. Being the first release of 2015, version 1.14.2.0 is no exception, and it has had at least the copyright year changed in every single file. Whether or not this is necessary is a question for the lawyers, but it certainly makes reviewing the patch a more frustrating process than it otherwise would be.
If Magento were to start releasing official patches again, it would be very helpful for the license header changes to be split out and provided as a separate patch. This would make reviewing the upgrades much easier, since you then have the actual code changes isolated from the non-functional header changes.
Google Tag Manager support
A new Enterprise-only feature is built-in support for Google Tag Manager (GTM). This new module appears to add some basic transaction data into the GTM data layer, as well as click tracking for the main checkout flow including add to cart, initiating checkout as guest or logged-in user, and steps through the default multi-step checkout. It also adds click tracking for the banner functionality in Enterprise Edition.
At this stage, the module doesn't appear to be very extensible and it has a number of shortcomings, some of which were acknowledged by Magento in the release notes. These include:
- No way to easily add more data to the data layer through configuration
- Checkout tracking hardcoded for the default multi-step checkout, meaning that alternative checkouts are not supported
- No built-in support for customer data in the data layer
- Analytics tracking has been added to usage of the admin panel
- Known issues relating to click tracking of add to cart actions (see release notes)
We will soon release a GTM extension that addresses some of these issues and offers Community Edition compatibility. If you'd like to be notified of the release, you can register for the release announcement and to receive a launch discount.
Sysreport tool
Although technically included in the last release (1.14.1.0), a relatively new Enterprise-only feature is the "sysreport" system diagnosis tool. The tool is designed to produce a report on the health of your Magento installation by checking if any core files have been modified running some other tests.
At this stage the tool seems intended to be used to dump raw information that you might send to Magento support, rather than providing any recommendations to assist in resolving the problems it detects.
As an alternative, our MageAudit service supports both Community and Enterprise editions, and produces a report that includes the results of over 30 tests across 6 categories. The tests are accompanied by recommendations on how to resolve common issues in the event that a test fails.
Wrapping up
While the Magento release notes have improved substantially from those of yesteryear, we'd still like to see more detail and in-depth explanations of each change, particularly for items in the "Miscellaneous Fixes" group from these release notes. Magento 2 is showing promise in this area, as even though there are references to an internal bug tracker added by the Magento team, there are also transparent discussions happening around some of those changes in the project's GitHub issue tracker. If Magento 2's release notes were to include links to relevant GitHub issues as part of the detail for each change (in CE at least), this would go a long way towards documenting and making it easier to understand changes where there was community engagement. Bringing back patches that separate code changes between versions from the copyright year updates and whitespace changes would also help.
Finally, be sure to keep an eye on the Mercator project, as we will update it with the changes from CE 1.9.2.0 soon after release.