Composer template for Drupal Argue projects
This project template should provide a kickstart for managing your site
dependencies with Composer., (*1)
Usage
First you need to install Composer and Git., (*2)
Note: The instructions below refer to the global composer installation.
You might need to replace composer
with php composer.phar
(or similar)
for your setup., (*3)
After that you can create the project:, (*4)
composer create-project jfeltkamp/argue-project -s dev argue
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., (*5)
What does the template do?
When installing the given composer.json
some tasks are taken care of:, (*6)
- Drupal will be installed in the
docroot
-directory.
- Autoloader is implemented to use the generated composer autoloader in
vendor/autoload.php
,
instead of the one provided by Drupal (docroot/vendor/autoload.php
).
- Modules (packages of type
drupal-module
) will be placed in docroot/modules/contrib/
- Theme (packages of type
drupal-theme
) will be placed in docroot/themes/contrib/
- Profiles (packages of type
drupal-profile
) will be placed in docroot/profiles/contrib/
- Downloads Drupal scaffold files such as
index.php
, or .htaccess
- Creates
sites/default/files
-directory.
- Latest version of drush is installed locally for use at
bin/drush
.
- Latest version of DrupalConsole is installed locally for use at
bin/drupal
.
Installing Argue
Create project will install Argue into the docroot direcrory inside of Argue. You can now install Argue as you would with any Drupal 9 site. See: Drupal installation guide., (*7)
Updating Argue
To update Argue, Drupal or any module to the newest version, constrained by the specified version in composer.json
, execute composer update
. This command will check every dependency for a new version, downloads it and updates the composer.lock
accordingly.
After that you can run drush updb
in the docroot folder to update the database of your site., (*8)
File update
This project will attempt to keep all of your Argue and drupal core files up-to-date; the
project drupal/core-dev
is used to ensure that your scaffold files are updated every time drupal/core is
updated. If you customize any of the "scaffolding" files (commonly .htaccess),
you may need to merge conflicts if any of your modfied files are updated in a
new release of Drupal core., (*9)
Follow the steps below to update your Argue files., (*10)
- Run
composer update drupal/argue
- Run
git diff
to determine if any of the scaffolding files have changed.
Review the files for any changes and restore any customizations to
.htaccess
or robots.txt
.
- Commit everything all together in a single commit, so
web
will remain in
sync with the core
when checking out branches or running git bisect
.
- In the event that there are non-trivial conflicts in step 2, you may wish
to perform these steps on a branch, and use
git merge
to combine the
updated core files with your customized files. This facilitates the use
of a three-way merge tool such as kdiff3. This setup is not necessary if your changes are simple;
keeping all of your modifications at the beginning or end of the file is a
good strategy to keep merges easy.