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
Comment | File | Size | Author |
---|---|---|---|
test.make_.txt | 431 bytes | langworthy |
Comments
Comment #1
Anonymous (not verified) CreditAttribution: Anonymous commentedI 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
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.
Comment #2
cossovich CreditAttribution: cossovich commentedI'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.
Comment #3
helmo CreditAttribution: helmo commented[ 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.
Comment #4
mrfelton CreditAttribution: mrfelton commentedSame 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.
Comment #5
Shiraz DindarThis issue as described in #4 appears resolved in the latest drush 5 dev, thus marking fixed. Can someone (mrfelton?) confirm and close?
Comment #6
mrfelton CreditAttribution: mrfelton commentedYep - builds right through with Drush 5 and everything is there at the end of it :)
Comment #8
ergonlogicAny 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.
Comment #9
dwwNo, 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.