Movable Type fork is an opportunity to harness CPAN

melody-logo-mark-on-white-thumb-200x200-7.jpg Today Melody was announced as a fork of the perl-based Movable Type platform. I helped the Melody project as it prepared to launch, in part advising on how to best to relate to the Perl community.  One of the stated interests of Melody is to refactor the project to use CGI::Application, which I maintain. Tim Appnel has already spelled out  a vision of what a "CPANization" of Movable Type might look like, and I've looked in depth at what the initial steps towards using CGI::Application could be.

My own vision for Melody is a code base that's very focused on publishing and content management, with all the infrastructure outsourced to CPAN modules that are well-written, well-documented, and well-tested.  The collaboration between Melody and CPAN would be a two-way code flow. While there are more CPAN modules that Melody could make use of, there are number of pieces of Melody which should be packaged as independent modules on their own and released to CPAN. One example is the great "dirification" that already exists in Movable Type. This is the functionality that turns any given string of words into a reasonable representation in URLs. It seems like an easy problem on the surface, but Movable Type has a sophisticated solution that takes into account what it means to do this well across many different languages. I also couldn't find any existing CPAN module which already takes on this problem space, so I started to extract this out of Movable Type myself and published a draft of String::Dirify. For that initial release, I ripped out all the fancy multi-language support, and there is still more significant work to be done to untangle this layer from from Movable Type. ( If you want to pick up that project and work on it, there's also some discussion of testing String::Dirify).

While Movable Type already had an open source release, I expect Melody to have  a more adventerous evolution, and I look forward to it becoming a shining star in the Perl community, not just for the exterior functionality, but also because internals have an opportunity to become an example of best practices.

2 Comments

"My own vision for Melody is a code base that's very focused on publishing and content management, with all the infrastructure outsourced to CPAN modules that are well-written, well-documented, and well-tested."

When I read that, I immediately thought: that's MojoMojo. Full disclosure: I just gave a talk on MojoMojo at YAPC Pittsburgh yesterday, so I'm naturally biased.

You comment makes it sound like MojoMojo competes directly with Melody, but it doesn't seem to. It's wiki software, not blogging software, it doesn't seem to ship with most of it's dependencies, and it wasn't clear that it has a mode of writing out static pages. But if your point is that it is outsourcing most of it's infrastructure to CPAN modules....that's certainly true, and admirable.

The problem we repeatedly have in the Perl world is combining the best of both approaches-- outsources non-core code to third-party CPAN modules AND shipping the stack with the application so that it is easy to install.

Leave a comment

Recent Entries

Close