It’s hard to believe we’re only ten days away from Drupalcon Paris and Drupal 7 code freeze. As of September 1st, the development focus will shift from new features and APIs to bug fixes and polish that will ultimately result in a stable release. While it may seem like Drupal 6 was just released, this has actually been the longest development cycle in the project’s history. This time has allowed core developers to make many monumental changes. Fields in core, the D7UX project, the new database layer and automated testing are all game changers for anyone developing with Drupal.
While CHANGELOG.txt is already impressive, I’ve noticed there are still many patches in the queue that have the potential to take D7 up yet another notch. So more developers can be aware, I decided to blog about what I believe to be the 10 most important patches needing attention. The next 10 days will be critical to ensure important improvements are not delayed until Drupal 8. So, without without further ado, and in no particular order, here are ten patches to watch ten days before the code freeze:
- Integrate CTools export.inc into core: Views pioneered the concept of exportables, allowing developers to export configurations into code. This is important for version control and allows for modules such as Features to package and share site configuration. Having an export hook in core would provide a reference and encourage this best practice in contrib. It would also allow core to use this hook to support exportables for ImageCache (now image.module) settings, something that is currently enjoyed in Drupal 6.
- FileField in core: With fields now in core, it is time to remove upload.module and replace it with the more modern FileField that serious developers grown to love. Since users, comments and taxonomy terms are all fieldable, this would allow files to be uploaded and attached to any entity in Drupal. FileField also opens the door to quickly adding on ImageField’s functionality, finally cementing and standardizing Drupal’s image handling.
- Help system overhaul: As advanced help has demonstrated, core’s help system badly needs an update. Unfortunately, this issue is presently stalled and was always a bit painful to follow. While still not in sight, a happy fairytale ending is definitely deserved.
- Plug-in manager: The ability to install and update modules from directly within Drupal would be a huge win for many DIY users, particularly those also looking at Joomla and Wordpress. Similar to the help patch, work on this issue seems to have stalled after (valid) criticism was raised.
- D7UX admin overlay: A critical recommendation and specification by the D7UX team was the creation of an admin overlay feature, allowing site administrators to quickly do administrative tasks without needing to navigate away from their current location. This feature is also notable for its sex appeal. Nicely dovetailing with the admin overlay would be putting edit links on everything.
- “Save draft” and “Publish” buttons on node forms: Another important issue that would make working with drafts actually make sense. Also see the D7UX issue to revise the placement and styling of the buttons.
- Migrate profile to fields API: There was much rejoicing when fields API added the ability to attach fields to users. Data migration to this new universal and powerful API will be a critical part of the D6 to D7 upgrade scripts. While this upgrade path will need to be available, a core Date field and URL field would be the icing on the cake and ensure there are not feature regressions when profile module disappears.
- Pathauto in core: With token patch landing just this week, the door is now wide open to add automatic aliasing to path module, removing the need for pathauto.
- Standardized, pluggable entity loading: This patch standardizes the loading of various entities such as nodes, users, taxonomy, files and comments. Unlike the other patches listed, the benefits for end users is not clear. For developers, this is important to reduce code duplication and allows for a more consistent CRUD API.
- Smallcore patches: Removing legacy code is perhaps just as important to Drupal 7’s success as any new feature. Modules such as Blog, Poll and Aggregator are outdated and do not represent the “building block” approach taken elsewhere in core. With fields on all entities, vastly improved install profiles, and (fingers crossed) exportables in core, small core advocates already have a lot to celebrate with Drupal 7. With these enabling changes in place, now is the time to complete the paradigm shift.
Beyond these ten critical patches, I can’t help but mention five others worthy of mention:
- Find performance bottlenecks (meta issue)
- Display upload progress (when possible)
- Finer control over the Parent Menu select box
- Use Seven admin theme for installation and updates
- Any of the many modal dialog patches would be an improvement!
Keep in mind that these 15 or so patches are just my favourites. There are no doubt many others worthy of attention. A must read is Webchick’s list of areas needing attention. Being one of only two people with the power to commit changes, I would highly suggest working on anything she points out! For those of you looking to get started in core development, code and usability reviews are always in short supply. There has never been a better time to start than now. See you in the queue!