[development] Distributing "bi-modal" Drupal modules

Larry Garfield larry at garfieldtech.com
Wed Feb 17 07:37:33 UTC 2010

For a project like CiviCRM, I would definitely encourage them to separate as 
much code as possible out into "agnostic" libraries that would work under 
Drupal 6, Drupal 7, or Joomla and just have a compatibility layer for each one 
that ties into the APIs for that host system.  That's a very common approach 
in systems programming.  What I would discourage is shipping a single tarball 
that contains both the Drupal 6 and Drupal 7 bridge code (and the Joomla 
bridge code?  Why not?).  I cannot see a reason to do so; offering a separate 
download for each is not hard, and with proper source code management 
maintaining two branches shouldn't be hard either.  They already have to to 
support Drupal and Joomla anyway.

I'm certainly not discouraging Civi or anyone else from maintaining a Drupal 6 
version of a module after Drupal 7 is released.  It's just a matter of how 
they do so.  I do not believe that Mac-style "fat binaries" are the correct 

--Larry Garfield

On Wednesday 17 February 2010 01:26:31 am Rob Thorne wrote:
> Larry,
> A bit of clarification:
> > I certainly hope they don't do it a lot.  As of Drupal 6, info files
> > must specify their core version and will be rejected by any other core
> > version.
> The problem here is that just as the Drupal project won't bundle certain
> things due to licensing issues, some other projects can't (or won't) put
> themselves under the Drupal repository.
> The CiviCRM project is an example.  It uses an Affero license, and it
> can  be deployed under Joomla, as a  standalone, or under Drupal.  For
> other projects, it can be difficult to link themselves to the hip of the
> Drupal release schedule.  Their user base likely will lag in D7
> adoption, for mostly sociological reasons (they server a lot of small
> non-profits).  But there are definitely users that need and want to use
> D7 for other reasons.  The CiviCRM project, while it has a growing
> community, is much smaller than the Drupal community, and it's difficult
> for them to support multiple Drupal versions.
> I don't speak for the CiviCRM people; I'm just a developer that does a
> good deal with their platform.  But I'm aware this is an issue for
> them.   Very reasonably, I think.
> I'm hoping that it's possible to put two .info files referring to
> different module names, each .info referring to a different Core
> version.  If by "reject" you mean ignore (rather than, say, go ape s***,
> white screen or otherwise misbehave, this is excellent, since both
> modules can be packaged with the larger project, and Drupal will just
> choose the "right" module.
> Rob

More information about the development mailing list