Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jfeltkamp/argue-project
Drupal-composer project template
https://github.com/jfeltkamp/argue-project
composer drupal php
Last synced: about 1 month ago
JSON representation
Drupal-composer project template
- Host: GitHub
- URL: https://github.com/jfeltkamp/argue-project
- Owner: jfeltkamp
- License: gpl-2.0
- Created: 2017-09-17T16:05:15.000Z (over 7 years ago)
- Default Branch: 2.0.x
- Last Pushed: 2022-07-08T18:35:37.000Z (over 2 years ago)
- Last Synced: 2024-11-16T15:53:11.226Z (2 months ago)
- Topics: composer, drupal, php
- Language: Shell
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Composer template for Drupal Argue projects
This project template should provide a kickstart for managing your site
dependencies with [Composer](https://getcomposer.org/).## Usage
First you need to install [Composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx) and [Git](https://git-scm.com).
> Note: The instructions below refer to the [global composer installation](https://getcomposer.org/doc/00-intro.md#globally).
You might need to replace `composer` with `php composer.phar` (or similar)
for your setup.After that you can create the project:
```
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.## What does the template do?
When installing the given `composer.json` some tasks are taken care of:
* 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](https://www.drupal.org/node/1839310).
## Updating ArgueTo 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.### File update
This project will attempt to keep all of your Argue and drupal core files up-to-date; the
project [drupal/core-dev](https://github.com/drupal-composer/drupal-scaffold)
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.Follow the steps below to update your Argue files.
1. Run `composer update drupal/argue`
1. 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`.
1. 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`.
1. 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](http://www.gitshah.com/2010/12/how-to-setup-kdiff-as-diff-tool-for-git.html). 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.