Install profiles are very difficult to develop, because they are very different from standard module development.

There are 2 features of install profiles that make them differ from standard modules :

1. Install Profiles act as "containers", namely they can contain their own module/theme directories, and allow you to break down available modules based on functionality. This is especially important when working with multi-site, and it also makes for better code re-use.
2. Install profiles are detected at install time, and can provide an install wizard.

Unfortunately the current design limits this, because install profiles are currently a SUBSET of drupal modules, instead of a SUPERSET.

The following very simple and small patches aim to remove the differences, and make it easier for module developers to develop install profiles.

#509392: Introduce .info files for install profiles
#524728: Refactor install.php to allow Drupal to be installed from the command line
#509398: Install profiles should be modules with full access to the Drupal API and all it entails(.install files, dependencies, update_x)
#80272: Make install profiles updatable

Comments

Boris Mann’s picture

Issue tags: +install profile

Yes! (because it's more fun than "subscribe")

amc’s picture

webchick’s picture

zeropaper’s picture

Doing the same ;)

Gábor Hojtsy’s picture

Looks like a great initiative!

NikLP’s picture

Would like to know where this ends up... :)

Steven Jones’s picture

Subscribe...and maybe more, if time permits.

joshmiller’s picture

subscribe... and... you mention patches but link to issue ques?

Are we meant to review the issues over there or in here?

Gábor Hojtsy’s picture

@joshmiller: review patches in the respective issues; this is just an "umbrella issue" for the initiative.

adrian’s picture

I have created another ticket related to this initiative
#525594: Installation should consist of 2 phases instead of one

This ticket has the other tickets as a pre-requisite, and would result in an installation process that is more understandable to Drupal developers, and would remove the last profile specific hook and instead use hook_menu to provide post install tasks. Goodbye strange hook_profile_tasks state machine malarky.

bonobo’s picture

Subscribe

Steven Jones’s picture

Not sure where to put these comments, but I'll just pop them up here:

We've done a lot of work on install profiles, we've been making our sites 'deployable' from code for three years or so. Recently, we've built a lot of platforms for other people, where we have a need to have some basic things that are set up for all sites, and then some site specific settings made for individual sites. We had managed this process by using include files, and trying to keep things as general as possible, which turned into a bit of a maintenance nightmare.

What we/I did was to write an install profile that was aware of other install profiles, and could load their code, and call their functions, it could inherit from another profile. We/I then defined all our install tasks in a large FAPI style array, which could be altered by each install profile in the inheritance chain. We then run through these tasks using the batch API to execute them.

Installers can become truly useful if you can inherit from a parent, ALA: sub-themes. Now that install profiles seem to have .info files, it would be awesome if you could define a parent profile that you should inherit bits from.

I'd love to be able to push this forward myself, but simply don't have the time (annoyingly I will have the time post code freeze) but just want to put the thoughts out there.

adrian’s picture

steven : i've been playing around with that idea myself, since we have the .info files now, it's really simple.

With the profiles having access to the hook system, inheritance just means theres multiple profiles active, and they just have certain weights.
the tasks system will be replaced by a much cleaner implementation that uses hook_menu.

Jeff Burnz’s picture

Subscribe'n...

xMarc’s picture

Title: Fix some conceptual problems with install profiles and make them actually usable » #15

ditto!

xMarc’s picture

Title: #15 » Fix some conceptual problems with install profiles and make them actually usable

dope!

dww’s picture

Note: I marked #509400: Introduce .install files for install profiles duplicate with #80272: Make install profiles updatable and updated the list in the original post here to point to #80272...

@adrian: Nice work with all this!

Macronomicus’s picture

Subscribing... ^_^

q0rban’s picture

adrian’s picture

This is a related issue regarding install profiles, and some of the weird workarounds we've needed to write for them in the past.

#545452: Store install profile in the generated settings.php file

robertDouglass’s picture

Subscribing because this is part of what will get us to #smallcore.

adrian’s picture

Created another issue :

#555212: Install profile inheritance

Also for anyone not subscribed to #509398: Install profiles should be modules with full access to the Drupal API and all it entails(.install files, dependencies, update_x)
there is a patch there now that resolves it and also resolves #80272: Make install profiles updatable

If that patch gets in, we're already ahead in the goals I had, and we can work towards really blowing the doors wide open.

Keep in mind that the goal for this project is still reducing complexity with a series of small, simple patches that remove inconsistencies. (ie: things that have a good chance to get in)

So the more eyes we have on the above issue the more chance we'll have at improving our situation even more.

chx’s picture

http://buytaert.net/8-steps-for-drupal-8 let's stop saying smallcore.

webchick’s picture

Status: Active » Fixed

It looks like all of the sub-issues here were completed, apart from #555212: Install profile inheritance which is a separate feature, now bumped to D8.

Marking this one fixed.

Status: Fixed » Closed (fixed)
Issue tags: -installation profiles

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