Project info for mod_virgule

Share This Created 13 Nov 1999 at 00:28 UTC by raph, last modified 25 Sep 2008 at 22:57 UTC by robogato.

Homepage: http://www.levien.com/free/mod_virgule/

Freshmeat page: http://freshmeat.net/projects/mod_virgule/

Notes:

mod_virgule is the Apache module developed to power the Advogato web site. Mod_virgule was created by Raph Levien. His code, which we'll call classic mod_virgule, was used to run Advogato through Oct 1, 2006. On that date, Advogato was migrated to a newer fork of the mod_virgule code maintained by Steve Rainwater. This codebase is now used to run both Advogato and robots.net and is actively maintained. Raph's classic version of mod_virgule is no longer maintained. A third fork of mod_virgule, unrelated to Advogato, was created by Luke Kenneth Casson Leighton and is called xmlvl.

Mod_virgule is written in C and relies on glib, libxml2, and the Apache Portable Runtime library.

Google Summer of Code 2007 ideas

Document the existing codebase using Doxygen: The mod_virgule codebase is large and poorly documented. Some sections of code have no comments at all. The comments that do exist are not in a consistent style. In order to facilitate continued improvements to the code, it would be very helpful to have well-commented code. Normalizing the comments to Doxygen style would also allow helpful documentation to be generated including variable and function listings and function call graphs. During this process, it may be possible to identify duplicated code, potential optimizations, and other desirable changes that would make the codebase more maintainable. This task is more complicated than it sounds. Much of the existing code is less than ideal and may take substantial research to document fully. The current maintainer as well as the original author significant portions of the code will attempt to answer questions about the functionality where possible.

Improved build system: At present, building mod_virgule is complicated and generally doesn't work if the target platform varies even slightly from the development platform. It would be nice if a potential user could download mod_virgule, type configure, make, and get a functional mod_virgule or a meaningful explanation of any missing libraries that need to be installed. Completing this project would involve using the GNU autotools (e.g. autoconf, automake, etc). At a minimum, the goal would be to achieve successful builds on Red Hat Enterprise Linux, CentOS Enterprise Linux, Debian, Ubuntu, and other common Linux distros.

Automated testing framework for mod_virgule: With the increased development activity surrounding mod_virgule, it would be helpful to have an automated method of regression testing for new builds. This work could be completed in any of a variety of scripting languages such as Python or Perl. An existing web testing framework such as twill might simplify this process.

Updating Legacy APR and libxml API Use: Mod_virgule has been patched over the years to use more recent versions of the Apache Portable Runtime (APR) library and DV's libxml2 but, in many cases, this was done using backward compatibility layers to minimize the effort of moving to the newer libraries. We still rely on deprecated functions and old-style API usage that we can't be sure will present in future versions of these libraries. It would be very helpful to have someone audit the codebase, looking for deprecated API usage, and offering patches to bring the code up to date. Additionally, the APR library shipped with Apache 2.x is much more extensive than the API available on Apache 1.3. There may be cases where mod_virgule utility functions can be removed altogether and replaced with APR API calls.

Other ideas: See the lengthy mod_virgule ToDo list for even more ideas.

Developer Links

Documentation

websites based on mod_virgule

If you run a mod_virgule website, please add it to this list.

License: GNU GPL

This project has the following developers:

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page