Goal
This document explain the steps to setup Acquia CMS site in local & make contributions.
Prerequisites
- PHP 7.4 or later installed ( php --version )
- MySQL 5.7 or above ( mysql --version )
- Composer 2 or later ( composer --version )
- Git for local development
- You must have a github account.
Overview
The acquia_cms repo is a mono repository where we've kept all of our acquia_cms module's codebase in one super repository (instead of managing each smaller repositories). This makes it easy for developers to make any contributions as they can make changes to multiple modules at once and thus creating only one PR for a new feature (or bug), module updates, security release etc.
After code is merged, the Travis CI automatically push back changes to individual module's repository (hosted on drupal.org) to make the module's code in sync with that in acquia_cms.
Following is the directory structure:
.|── composer.json|── composer.lock|── vendor|── modules ├── acquia_cms_article ├── acquia_cms_audio ├── acquia_cms_common ├── acquia_cms_component ├── acquia_cms_document ├── acquia_cms_event ├── acquia_cms_headless ├── acquia_cms_image ├── acquia_cms_page ├── acquia_cms_person ├── acquia_cms_place ├── acquia_cms_search ├── acquia_cms_site_studio ├── acquia_cms_starter ├── acquia_cms_toolbar ├── acquia_cms_tour ├── acquia_cms_videoThe root composer.json doesn't requires any acquia_cms modules nor any other contributed modules. To download all additional contributed modules/libraries/themes that each acquia_cms module provides, we've used the Composer Merge Plugin.
When composer command is run, it will parse each module's composer.json file and will merge them together on the fly with root composer.json. This combined composer.json will then be used to download additional modules/themes/libraries and thus generating the autoloader & updating the composer.lock file.
-
Fork the repository
Navigate to acquia_cms repository and click on Create a new fork and follow the instructions on next page.
-
Downloading Acquia CMS
You should run below commands one by one.
git clone --branch=develop [email protected]:vishalkhode1/acquia_cms.git projectcd projectcomposer installcomposer build:local -
Configure environment variables (Optional)