[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
approach.
--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