This is a project template for Drupal 10 sites built with the Openfed distribution.
- At least PHP 8.1 installed
- Composer 2.0
There are 3 json files:
The main json file for your project, which you can use to require extra repositories. You can override this at your will, just make sure that composer-merge-plugin settings and package are kept in order to use the json files mentioned bellow.
For more info about composer-merge-plugin settings and options check https://github.com/wikimedia/composer-merge-plugin
Includes all Openfed related settings and should not be changed once you create your project. However, you should update this file regularly based on the most recent version in this repository.
Where all the specific patches for the project should be set. This repo doesn't apply patches so this file will always be empty and it's here just to be used as a template or starting point. See bellow how to apply patches using the command line.
This project requires the installation of composer.
Note: The instructions below refer to the global composer installation. You might need to replace
composerwithphp composer.phar(or similar) for your setup.
After that you can create the project:
composer create-project openfed/openfed-project:~12.3.0 MYPROJECT
The best is to download the latest version and replace your project with the files. If you have custom modules defined on your composer.json, you need to copy the to the new composer.json file. You can delete the existing composer.libraries.json as it has been removed from this project.
Since Openfed 8.x-10.0, there's a composer script (Experimental) which you can run in order to have your local project partially updated. To update your projects you can:
- Backup your site
- Run
composer run-script project-update
- Manually update composer.json (it's recommended to use the composer.json from this repo and ajust it to use your projects/patches)
- Run
composer update
Your project should now be updated.
With composer require ... you can download new dependencies to your
installation.
cd MYPROJECT
composer require drupal/devel:~1.0
The composer create-project command passes ownership of all files to the
project that is created. You should create a new git repository, and commit
all files not excluded by the .gitignore file.
There's a composer.patches.json file which should be used to define all the needed patches for your project. It's possible to manage patches using the command line due to szeidler/composer-patches-cli library. See below some commands and check https://github.com/szeidler/composer-patches-cli for more info.
composer patch-add <package> <description> <url>
Example:
composer patch-add drupal/core "SA-CORE-2018-002" "https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&id=5ac8738fa69df34a0635f0907d661b509ff9a28f"
You can omit arguments for an interactive mode.
composer patch-remove <package> <description>
Example:
composer patch-remove drupal/core "SA-CORE-2018-002"
You can omit arguments for an interactive mode.
composer patch-list <package>
If the package argument is omitted, the command will return all defined patches.
When running "composer install" you may get some memory limit issues. This is due to the composer dependency resolver since we have a big list of dependencies. To bypass this issue, you have 3 options:
Temporarely increase the memory limit as described at https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors
If you are creating the project for the first time, use the recommended installation procedure by using "composer create-project" command.
Run "composer update" twice. At first it will throw the same error but on the second attempt it will run successfully.