Currently, the package_handler and version_control engines are not implemented as stand-alone plug-ins. Although they have their own include files, (like git_drupalorg.inc), their functionality is partly integrated into drush.pm.inc (drush_get_projects(), pm_drush_engine_package_handler() and pm_drush_version_control_handler()).
In my opinion, there are several advantages of moving all engine specific functionality out of drush.pm.inc in to the appropriate include files. Especially now git deployment and version strategies are is still evolving and under discussion.

  • First, it would be easier to implement and try-out several strategies in separate include files, without having to modify drush.pm.inc. Whether or not to use git-submodules could be one of the reasons requiring more than one git package handler and/or version control engine
  • Secondly I thing that there is a big change that when the discussions settle down, more than one strategy will be popular, requiring Drush to support more than one git deployment/vcs solution, or at least to support custom strategies
    • Please let me know what you think of this suggestion.

      Gertjan Idema

Comments

moshe weitzman’s picture

Better modularity is always good. So yes, patches welcome.

Anonymous’s picture

Status: Active » Closed (won't fix)

I took a closer look at the package_handler and version_control engines and realized this change is more complicated and less necessary than I thought. I would require a rewrite of the drush engine system.
Furthermore I realized the possibility to write custom version control and package handler engines is already built-in. Therefore I withdraw my feature request and mark it won't fix.