This article was originally written based on the Spark distribution.
Installation profiles are like modules
Installation profiles in Drupal 8 have all the functionality of modules, including access to hooks and plugins and, critically, the ability to provide configuration for your site in the form of .yml files.
Picking a machine name
First you need a machine name for your profile. This is a name consisting of lowercase letters and underscores only. From here on, all references to profilename imply the profile machine name.
E.g if your profile is for Acme starter kit valid profile machine names would be
the following would be invalid
This is because profiles are just like modules, and hence can implement hooks, - but
acme-kit_form_alter would not constitute a valid PHP function name.
Creating the file structure
Your installation profile will reside in its own profilename directory in the /profiles directory of a Drupal 8 site.
All installation profiles must have a profilename.info.yml file. They may also have:
- profilename.install file
- config folder
- translations folder.
When packaged, your installation profile will also have modules, src, and themes directories as needed.
The profilename.info.yml file should look similar to this: