Just over a week ago, I've been in New Orleans to talk about multilingual Drupal website building at the Do It With Drupal event organized by Lullabot. I've been happy to join fellow Acquians for a short time at the office and then at the Do It With Drupal seminar to represent the company. It was a fun experience to hook up with so many other people looking into using Drupal for the first time or even selling Drupal services already. It was a good mix, and was a very different target audience compared to Drupalcons. This event was more focused on the path seekers and the beginners with high detail and cross-discipline talks over four days. I've enjoyed several sessions, including Robert's session on Solr.
Unfortunately (for my enjoyment of the conference), my session was at one of the last slots, but it had a good turnout nonetheless. I've been prepared well in advance with a completely rethought line of thought (compared to previous, more developer focused events), and a slideshow done from the ground up. So despite talking about this topic before elsewhere, I needed to have a totally fresh look at the topic and present all the latest developments to date.
Since I do not have the permissions to upload my session to the website of the event, and the slides I sent in by email were not uploaded yet, I figured I'd better share them here with those eager to look into them soon. Happy holiday's reading if you are about to take time to learn more about multilingual Drupal solutions!
In first of a series of posts, I'd like to go ahead and talk about project handling functionality, one of the most important tools behind Drupal.org. At this moment, Drupal.org is running Drupal 5, and a big chunk of modules which don't have a Drupal 6 version to migrate to on Drupal.org is the project module family: project (also includes project_release and project_usage), project_issue, pift_server, cvslog and even comment_upload.
Except the comment_upload module (which allows file uploads on comments in a general way), maintenance for these modules are headed by Derek Wright and Chad Phillips. An outstanding thing about these modules is that they keep improving and being adjusted to user needs. Automated testing integration tools were developed and keep improving, so patches submitted against Drupal 7 get automated testing. This is just plain great. However, all this huge amount of motion is going on in the Drupal 5 version of the module. And given that Drupal.org needs a stable environment, it takes considerable effort to maintain a stable Drupal 5 branch with all these feature improvements and changes coming in.
While these modules do not even have a Drupal 6 branch yet, Adam Light went ahead and worked on a Drupal 6 port for project module. He hosts this in his own private Subversion repository (see http://drupal.org/node/157694#comment-891587 and the rest of the comments there). Since he started off long ago from a then current version of the module and implemented Views integration (instead of the one-off SQL based pages in the Drupal 5 version), the Drupal 6 port has a largely refactored codebase and does not carry the improvements made to the Drupal 5 version since then.
The lead maintainers however are at this point more interested in working on a new stable release for Drupal 5, given that some bigger changes they are planning to make would be easier to manage on their own instead of as part of a bigger porting and migration work to a new Drupal version and to a Views based backend. This gets us to a message of "please help with a new stable Drupal 5 release of project module before Drupal 6 work can be considered". While these patches are relatively big, they are far from how big of a monster patch is the Drupal 6 upgrade. All-in-all the possibly awkward conclusion is that maintainers look for help with the Drupal 5 version before Drupal 6 work can be started.
For concrete action items, Adam Light summarizes it well:
Creating a D6 branch itself will not really unblock things. Hunmonk or I could also do that ourselves. However, the ported code that is currently in my SVN repository contains a *lot* of changes, and all of us agree that those changes should not just blindly be checked into the project cvs repository without at least some review.
Yes, we all realize that this is a non-ideal situation, and that the port is moving much slower than anyone of us would like. The best way anyone could help move the port forward would be by helping to write or review patches for any issue not yet finished in the list of things to do before the next 5.x release. Mostly, that means reviewing the $node namespace patches in the issue I linked to above. The unfortunate part of this issue is that it is huge, but really boring. And none of the sites run by the project* maintainers use a combination of modules that actually causes this bug to reveal itself. But at the same time, we realize that lots of project* users *do* use such a combination of modules (eg. they use pathauto with project), and so we need to fix this bug soon.
So there are numerous big issues affecting Drupal.org which will be solved as part of the Drupal 6 port, but the main issue holding back the port from even starting is an issue which does not even affect drupal.org (and therefore is not going forward on any reasonable speed).
In summary, there are difficulties in how improvements on drupal.org are expected by some people right now instead of after an upgrade, and the maintainers are taking on work on these items; and issues not affecting drupal.org holding back our most important upgrade ever. So you can help at least three ways with the project module upgrade:
Put away some of your cool feature ideas for project modules on drupal.org for now. Let's focus on porting and bugfixing or we are not going to get over new feature requests anytime soon.
Help test and fix existing issues in the Drupal 6 port of project module. It at least has Views integration issues coming from the RC2 API changes in Views. See my pending patch at http://drupal.org/node/157694#comment-1069892 which still needs work.
We definitely need your help in many ways. Let's do good for the drupal.org upgrade / redesign!
The first steps to get to a better drupal.org is (1) to see what we have, (2) keep what we are going to use forward, (3) implement migration paths for whatever we drop and (4) start adding functionality afterwards. In my previous blog post I referenced my report titled Where we are with Drupal.org modules vs. Drupal 6? which covered some of (1), and provided some ideas for cleaning up for decisions in (2).
At the start of the redesign, ideas of single sign on for drupal.org subsites, splitting out project management to its own subsite or merging all subsites into one were tossed around. A single unified node id space among subsites was discussed but more concrete implementation details were not made up. So there are lots of bigger scale infrastructure questions, and we need dedicated people to deal with these, drive the directions, make up solutions.
To facilitate teamwork, I decided to bring findings in my report to a wiki page and encourage all of you to come and sign up for tasks. The Drupal.org to Drupal 6 upgrade collaboration page is a wiki page which lists major module sets on drupal.org and calls out some ideas / directions we might/should take in each area. There is place for people to sign up and for relevant issues to be posted to have an overview of all the items needed.
While the focus of the page is to update drupal.org modules to Drupal 6 (some of which lag behind considerably, especially project handling related modules), the upgrade itself poses some questions. Some of the functionality is not meaningful to update given new plans. Two examples:
The drupal.module based distributed authentication model for Drupal.org is planned to be OpenID going forward, and we will drop the old drupal.module based authentication scheme. This needs action on drupal.org to set up an OpenID server and provide migration for those using their drupal.org names on sites such as groups.drupal.org for example.
While there are some questions, there are clearly required modules, such as the project module family, without which drupal.org will not live as happy as it is planned to be. There are numerous smaller modules in the drupalorg.module, or items like comment_upload which need attention if you can help out.
Just as I completed my MsC last year at the Budapest University of Technology and Economics (BME), I've been asked to go give context and advice on the possibility of using Drupal with people at the Central European University in Budapest. They were looking at content management systems such as Plone and Drupal and were trying to scope their work and the possibilities they have for converting to an Open Source system.