This release includes support for CCK3 multigroups, database storage and performance improvements, as well as many internal API changes. This is a recommended upgrade if you have a lot of displays, as it moves display storage out of the variables table.
New features in 2.x include:
Support for CCK multigroups
Display Suite includes its own Fieldset and Multigroup renderers, and the multigroup renderer supports all existings CCK formatters plus some extras, and subgroup labels. Additional work to multigroups was contributed by @jstoller.
Improved database performance
Display Suite 6.x-1.x stores its field settings in a single row in the variables table. This if fine if you only have a couple of displays, but becomes problematic on sites with many displays or high-traffic. In 2.x Displays are moved into their own table (as they are in 7.x). This work was originally committed to the 1.x development version, but removed due to the potential for loss of data during the upgrade - see the upgrade notes below. The database storage work was completed by @swentel.
The internal rendering flow and variable assignments were altered to support multigroups and a new concept of "rendering pipelines" (which will see full use in the 3.x version), and cleaned up to remove the number of variables. This has the side benefit that theme functions are now passed some extra information. I have tried to keep the API consistent throughout, however this exposed some situations where certain field implementations followed slightly different paths through Display Suite. These should all now be consistent, in other words a CCK field should pass through all the same steps as a custom field. This may mean that individual field implementations may need to be updated, in some rare cases.
@zhangtaihao also contributed a nice little patch which allows you to list your style options using optgroups. It's also in the 1.x branch.
Should I upgrade?
This is a recommended upgrade if you have a lot of displays, as it moves display storage out of the variables table. If you have only a couple of displays or a low-traffic site and do not need multigroup capabilities, you can remain on 1.x. Other than security updates, however, there will be no further fixes or new features committed to that branch.
2.x aims for full backwards compatibility with 1.x, and has been tested with Node, User, Comment and Views Displays, and Node Displays CCK. However, as the internal rendering process has changed, some modules which implement the API may no longer function correctly (including, potentially, some parts of Node Displays Contributions). If you find it is not working with other modules which implement the Display Suite API, please file an issue in the Display Suite issue queue and I will take a look at it.
How to upgrade
- Revert any features with exported displays and clear your cache (1.x features may not revert over 2.x properly)
- Check that your build modes do not have names longer than 32 characters, correct any which do
- Backup your database
- Download and install Display Suite 6.x-2.x and Node Displays Contributions 6.x-2.6 or better
- Run update.php
- Check that all your build modes have carried over correctly, and report, with as much detail as possible, any issues with those that dont in http://drupal.org/node/1300478
- Check that 2.x is working with any other modules which implement Display Suite