upgrade

Second day report from the drupal.org upgrade sprint

A couple weeks ago, Dries posted a call for sponsors for efforts to upgrade the Drupal.org site with its existing functionality and design to Drupal 6 and then start work on the redesign, new features and theme implementation. We are on the first phase at the moment, and sitting at the boardroom of One Laptop Per Child in Cambridge, Massachusetts. We are getting to second day's close, and already achieved an impressive amount of progress. Here are some of the most exciting items.

Drupal.org redesign sprints in Cologne, Boston and Paris

Drupal.org is in need of some makeup, and we know this quite well. It runs on the old and stable Drupal 5 codebase, while Drupal 6 is out for almost one year (and is just as stable but way more useful especially with all the new contributed modules). Drupal.org also sports a design which was last refreshed in 2005. So it does not really give justice to the software it helps to flourish. Therefore the Drupal Association hired Mark Boulton to help with a community based redesign of the site, and the results are outstanding. Now people from the community need to get together and actually implement it.

We are set out to make progress quickly, so Dries Buytaert decided to organize a series of developer sprints where people get together and plan and execute on the redesign. First we need to upgrade drupal.org to Drupal 6, so that we can work with up-to-date APIs to implement the new features. Then we can move on to actually implementing the redesign.

Thanks to Acquia letting me put some of my time on this job and my scheduling over the holidays and some free time put on these tasks, I've contributed work (to upgrading the existing theme, eliminate modules, help upgrade some other modules, etc) and had quite a few overviews, blog posts and call for actions. Now, these code sprints will actually get the real people together, so for example, two lead maintainers to the project module suite will be in the same room to implement, discuss and review updates to Drupal 6. We expect to make good progress this way.

However, your help is still needed! While some exceptional companies help fund and plan this sprint already, we need more funding for some of the people and also other members of the community who are willing to join and do the work. Sprints will happen in Cologne, Boston and Paris over the next few weeks (exact timing and more details in the drupal.org front page post); and we expect we will continue working on it while in Washington DC for Drupalcon and onwards. We found these places with people to help in mind, not so that we can travel around the globe (there is little overlap between the North-American and European sprints in terms of people, but some overlap is required for consistency in setting goals and planning). I've already contributed to the chipin and encourage you to do so!

If you are more into help doing the work, and you're available to attend one of these sprints, and if you have the time and dedication to work on the drupal.org redesign before, during and after the code sprints, join the redesign infrastructure team and let Dries know in the comments of the drupal.org post, and we'll figure out how and when you can best participate.

Check out the beta version of api.drupal.org running on Drupal 6!

I've helped recently to unfork the Bluebeach theme (the theme used on Drupal.org and subsites) which was used with different code on drupal.org and groups.drupal.org. So now both sites can use the same source code for their theming. I've also ported the changes to the Drupal 6 port of the theme which was done by Earl Miles earlier, based on the Drupal 5 version. These were all in anticipation of doing upgrades of drupal.org and subsites with the existing theme before going to the next step with Mark Boulton's redesign.

Weblabor.hu upgraded from Drupal 4.6 to 6.4(!)

As with lots of hobby projects, things could just drag on without much progress, if you don't sit down and just do it. It was the same situation with Weblabor.hu, the site which got me to use and heavily contribute to Drupal (4.3 originally). Unfortunately I only had the time to keep updating the site up to Drupal 4.6 and the long cycle around Drupal 4.7 and my heavy involvement with other things (such as finishing off studying for my MsC degree) dragged me away from taking care of the site.

Updating from Drupal 4.6 to 6.4Almost two years ago, I have started to work on an upgrade of the site to Drupal 5. That was "of course" never complete, so early this year, I've started to push for updating it to Drupal 6 finally, and got momentum among the other editors/managers of the site, so we worked hard in the little spare time we had to get it to launch. Our efforts reached the actual live upgrade this past weekend.

This site helped me fix up and enhance commentrss module and Localization client over the past two years, directly benefiting the community. As far as our custom modules go, it was a bit frightening effort to port our custom Drupal 4.6 modules to Drupal 5, however it was a piece of cake to port Drupal 5 modules to Drupal 6 with coder module.

Because our first priority was to relaunch on Drupal 6 instead of 4.6, we dropped some of the less used features, avoided toying too much on the design, and concentrated on retaining data and getting the site run on a modern backend system finally.

One interesting thing I developed way back in 2007 however was the direct update mechanism. Drupal 6 lacks some of the old update functions, so I needed to copy them back, and there were two places where I needed to patch the old update functions (avoid menu_rebuild() too early before the new menu system is in place and avoid calling node types from the database before they are in there), but otherwise it was a great experience to just copy the old Drupal 4.6 database, hit update.php and the whole update process just run.

The update process running

Due to the timing of our update efforts (and our diligence to update to the latest and greatest Drupal versions, given that we might not have time to do so for some time again), we were in the unfortunate position to never be able to use CCK and Views, due to no stable releases available of these fine modules. So if you expect a nice use case of porting 4.6 custom stuff to CCK and Views, I need to disappoint you. What we did, is that we ported custom node types to the build it node type system, we ported our custom file upload code to the since then built in upload system and a custom filter for Drupal 6, so that our attachments included in posts will still work. We kept custom code to list stuff in our jobs section or in our books area though. In cases when modules were available however, it was just so nice to be able to get new features developed through the past years by others. Oh, the wonders of building on an open source framework!

Drupal 4.4 style tracker on Drupal 6.4One interesting tidbit is that we keep using the tracker style which was available way back up to March 2004. This old style tracker lists comments to a post, compared to just listing their numbers in a boring table. This also allows displaying individual read information for users, as shown on the picture. To my best knowledge, this was removed due to performance reasons. Querying all related comments for all displayed nodes takes some power for sure. What we did to remedy part of the issue is to hide most read comments on long threads for logged in users, so they get a more compact view and the site eats less power.

In place editing on Weblabor.huWe almost kept our self-promise to not add new features. One small new feature we've added however is of great help to site admins. Inspired by Flickr's in place title and description editing and by the doubleclick Drupal module, we've developed in-place editing for node titles, so we can touch up quickly on mistakes and typos. This feature consists of a little bit of code on the theme to mark up editable titles, JavaScript to replace titles with an input field, some AJAX to send it over to the server and a very small module to save the node title coming in (if the user has permission to change node titles). It would be a piece of cake to contribute to the dblclick module but the only problem with it is that it is heavily theme dependent. How you put the input field into the page depends highly on the markup used to display node titles, and that could vary quite a bit on different sites. I'll try to find the time to write up an article about it though.

I am happy to see almost two years of little bits of spare time work pay off, and I am hopeful our efforts will help put Weblabor.hu on a growth path again.

Ps. The logo in the site header is one we actually created in real life (although it did not become as good as we hoped it will be).