Problem: A makefile that includes two or more profiles that contain like projects (ex: they both contain views.module) will not have the like project copied to both profiles, only the first one defined in the make file. This used to work with drush_make 2.2.

Q: Why would you ever want two or more profiles?

A: If a project extends another project, such as Build Kit it may have an includes[] statement to the parent project .make file which may itself contain a profile. Drush make recursively grabs both profiles. In the case of extending Build Kit, one does this by creating a custom distro.make file which includes[] the Build Kit distro.make file and then the custom profile. The Build Kit distro.make file includes it's own profile so when building the custom project you will end up with the Build Kit profile and the custom profile.

Attached is a test.make (filename changed so it could be attached) file that describes this problem when run with drush_make 2.3

CommentFileSizeAuthor
test.make_.txt431 byteslangworthy
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Anonymous’s picture

I am having this problem too. At the moment I am just including the included make file contents so it doesn't have to do includes.

I've looked at the code and found some things out but still not got it working.

In

drush_make.drush.inc we have:

<code>147 function drush_make_projects($recursion, $contrib_destination, $info, $build_path) {

which is only called from a few lines up:

113 if (drush_make_projects(FALSE, drush_get_option('contrib-destination', 'sites/all'), $info, $build_path)) {

So the $recursion option is always called FALSE, which is why it's not including any includes.

When I test it including a make file by changing the above to TRUE it is including the include file I have in my myname_distro.make and hitting this bit of code which resets the core:

197 elseif ($cores == 1 && $recursion) {
198 unset($projects['core']);
199 }

and it's also not recursing when hitting the myname.make file in my distro package.

I notice one of the recent commits:

http://drupalcode.org/project/drush_make.git/commit/9d6ed28

has the notes "Move include logic to parser level." so I'm wondering if the include logic just works differently now it's been moved and not been fully finished.

cossovich’s picture

I've also got this issue. I've been using Buildkit as the basis for my install profiles and I recently upgraded Drush Make to 2.3 which has caused the problem. I've rolled back to the 2.2 release for now.

Was this change unintentional?

Wondering if this is a bug or a 'feature' that we're dealing with.

helmo’s picture

Project: Drush Make » Drush
Version: 6.x-2.x-dev »
Component: Code » Make

[ Powered by #1115636: Issue Macros and Templates - Drush Make]

Drush make is being merged into drush core (discussed in issue:#1310130: Put drush make in drush core)
This means that the issue queue is also moving. The drush queue has a component 'Make' especially for drush_make.

More information will be posted on the drush_make and drush project pages.

mrfelton’s picture

Same issue for me. We have a couple of profiles on our platform, each one using slightly different version of some modules. Currently, after building the platform, I then have to manually rebuild the second profile so that it has all the code.

Shiraz Dindar’s picture

Status: Active » Fixed

This issue as described in #4 appears resolved in the latest drush 5 dev, thus marking fixed. Can someone (mrfelton?) confirm and close?

mrfelton’s picture

Yep - builds right through with Drush 5 and everything is there at the end of it :)

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

ergonlogic’s picture

Title: Make files with multiple profiles no longer grab like projects » Makefiles with multiple profiles no longer grab like projects
Version: » All-versions-4.x-dev
Status: Closed (fixed) » Needs work

Any chance we could fix this in Drush 4.x & Drush Make 2.x? This is really cramping a project I'm working on with Profiler sub-profiles in Aegir.

dww’s picture

Version: All-versions-4.x-dev »
Status: Needs work » Closed (fixed)

No, sorry. The separate drush_make project is no longer supported. Everyone's just trying to get Drush 5.0 out instead of sinking effort into the old codebase.