Allow custom themes and custom modules to be committed to an installation profile's CVS directory in order to avoid unnecessary modules and themes in contributions/modules and contributions/themes.

(For details see community initiative node on Install Profile Packaging http://drupal.org/node/779440).

- Remove current restriction.
- Add clear recommendations to release node form.

Comments

dww’s picture

Yup. Historically, the reason we did this is that we didn't want people to checkin entire copies of views and such to their install profile directories, which was tempting given how lame the previous system was for install profiles. Now that we have a sane packaging system, there's no reason to checkin other contrib code directly to your profile. But, it'd be really nice to allow profiles to define their own modules and themes if they need to, for the reasons alex_b explains here and at http://drupal.org/node/779440. So yeah, this one is pretty easy. All we need is to remove some restrictions in the CVS access control code and some documentation. I'm not sure if the release node form is the best place to do it (it's sort of too late at that point), but it's not obvious to me where these warnings should live...

dww’s picture

Title: Allow themes and modules in installation profiles » Remove commit restrictions for installation profiles

Better title, since people keep opening other issues for basically the exact same thing, e.g. #831412: Allow images in installation profiles

sdboyer’s picture

Status: Active » Fixed

Marking this fixed, since the technical issues with project no longer exist, we're pretty much settled on blowing away restrictions in the move to git, and there's little point in changing this before we actually make the vcs switch. (I hope...) Maybe a little premature, but this issue isn't likely to see much traffic otherwise...

gábor hojtsy’s picture

Well, it obviously depends on when the switch will happen, because it limits profile development until then :|

sdboyer’s picture

Status: Fixed » Active

Yeah, greggles pointed this out to me on IRC. Unmarking fixed, especially because it SEEMS like the fix for this is very, very trivial, and nothing stands in the way of doing it now.

dww’s picture

Component: Packaging » CVS
Assigned: Unassigned » dww
Status: Active » Fixed

Right. It will potentially be a while before we switch to Git, and meanwhile these restrictions are no longer needed (and causing some harm). This issue has been open long enough (and enough duplicates submitted) to give anyone else on the infra/CVS teams a chance to object. Seeing none, I went ahead and lifted the restrictions in the contributions/profiles directory. We're down to the general restrictions on packaged files, license*, and .(svn|bzr) directories. I committed the change to the xcvs-contrib.php config file to the private CVS repo and deployed on cvs.d.o.

sdboyer’s picture

YAY!

dww’s picture

I posted http://groups.drupal.org/node/85194 to the http://groups.drupal.org/distribution-profiles group to inform interested parties. Folks should feel free to publicize in other ways as they see fit.

alex_b’s picture

*awesome*

Thank you dww for taking your time to remove another brake from the profile wagon! Tweeted: http://twitter.com/lxbarth/status/21475450794

greggles’s picture

Currently we don't/can't track usage of installation profiles - http://drupal.org/project/usage/uberdrupal - does this change affect that? What about update module letting people know that a module is out of date if that module is placed inside a profile?

dww’s picture

Currently we don't/can't track usage of installation profiles - http://drupal.org/project/usage/uberdrupal - does this change affect that?

Not directly, no. We should open a separate issue to discuss this I think. It's also related to #509398: Install profiles should be modules with full access to the Drupal API and all it entails(.install files, dependencies, update_x).

What about update module letting people know that a module is out of date if that module is placed inside a profile?

At first I thought you were asking about modules packaged with an install profile, and there are two ways "update status" handles that:

A) Update status itself on installed sites works fine to tell you if any real module projects are out of date, just like always
B) Project module on d.o gives you update-status-like info on release nodes of distributions, e.g.: http://drupal.org/node/869134

However, you're talking about the modules *committed* to the install profile directory directly (as per this issue). I actually don't know if that case is handled correctly by update status. It's possible that all the plumbing I put in place magically Just Works(tm) for this. Someone would have to test it. There *is* a release history feed, even for install profiles:

http://updates.drupal.org/release-history/uberdrupal/6.x

And, the packaging script does its .info file magic, even for install profiles. So, if a module is included in an install profile, the .info file *should* get the right meta data to point update_status at the above feed and in theory, it all works... At least the update_status part of it.

However, if the profile reports there's a newer version, it's not very easy it is to upgrade. :( I guess you can just re-download the whole package and install it in place. However, there's no equivalent to update.php to handle changes between versions of the profile. So, things that changed in .profile itself aren't going to be upgraded/reconfigured/reinstall and you'll be in a slightly weird state -- unless of course the profile maintainer goes out of their way to handle these cases in their profile's module's .install file with hook_update_N() implementations. This is part of what makes install profiles tricky. It's all sort of a can of worms.

alex_b’s picture

However, if the profile reports there's a newer version, it's not very easy it is to upgrade

I recommend keeping the actual profile to the absolute minimum, that is basically installing modules, enabling a theme. All other settings should be captured in Features modules. Thus the entire module infrastructure can be used to manage change.

Status: Fixed » Closed (fixed)

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

greggles’s picture

I know this is closed, but...for the sake of completeness:

http://drupal.org/project/usage/hyperlocalnews shows that yes, it does count usage if you have a module inside a profile.

My admin/reports/updates page shows, however, that the update information for modules inside of profiles doesn't currently work.

Component: CVS » Other