Project template for developing Drupal core with a git clone.

Overview

Drupal Core Development Composer Project

This is a Composer project template for developing Drupal core.

It allows:

  • a clean git clone of Drupal core.
  • Composer dependencies of Drupal core are installed, so Drupal can be installed and run as normal.
  • other Composer packages you might want, such as Drush, Devel module, and Admin Toolbar module, can be installed too, but don't affect the composer files that are part of Drupal core.

Installation

To install a Drupal project for working on Drupal core:

$ composer create-project joachim-n/drupal-core-development-project

Composer will clone Drupal core into a 'repos/drupal' directory within the project, and then symlink that into the project when it installs Drupal core.

Once the installation is complete, you can install Drupal as normal, either with drush si or with the web UI.

Limitations

Most Drush commands work, but drush cr does not. To rebuild the Drupal container and clear caches, install Devel module and use its menu items instead.

A fix is being worked on: see https://www.drupal.org/project/drupal/issues/1792310.

Developing Drupal core

You can use the Drupal core git clone at 'repos/drupal/' in any way you like: create feature branches, clone from drupal.org issue forks, and so on. Changes you make to files in the git clone affect the project, since the git clone is symlinked into it.

Managing the Composer project

You can install any Composer packages you like, including Drupal contrib modules, without affecting the git clone of Drupal core. To work with Composer, you need to be in the root directory of the project.

Changes to the git clone's composer.json will be taken into account by Composer. So for example, if pulling from the main branch of Drupal core changes Composer dependencies, you should run Composer on the project to install these.

Running tests

The following are required to run tests.

PHPUnit configuration

The simplest way to run tests with this setup is to put the phpunit.xml file in the project root and then run tests from there:

$ vendor/bin/phpunit web/core/PATH-TO-TEST-FILE/TestFile.php

To set this up, copy Drupal core's sample phpunit.xml file to the project root:

$ cp web/core/phpunit.xml.dist phpunit.xml

Then change the bootstrap attribute so the path is correct:

Technical details

The rest of this document is gory technical details you only need to know if you're working on this project template or debugging it.

How it works

The composer.json at the project root uses a Composer path repository so that when the drupal/drupal package is installed, it's symlinked in from the Drupal core git clone, at the branch that the clone has checked out.

Drupal core itself defines path repositories in its top-level composer.json. These need to be overridden in the project root composer.json so they point to inside the Drupal core git clone.

Manual Installation

Clone the repository for this template into, say, 'drupal-dev'.

$ cd drupal-dev

# Create a folder in which to store git clones, which Composer will symlink in.
$ mkdir repos
$ cd repos

# Clone Drupal core, to whatever branch you like.
$ git clone --branch 9.2.x https://git.drupalcode.org/project/drupal.git

# Go back to the project root.
$ cd ..

# Install packages with Composer.
$ composer install

The Drupal core git clone will be clean apart from:

	sites/default/settings.php
	vendor

Since it doesn't have a .gitignore at the top level, you can add one to ignore those files if you like.

Project template development installation

To test how Composer creates a new project from the template, you need a git clone of the template repository.

In a separate location, do:

$ composer create-project joachim-n/drupal-core-development-project NEW_PROJECT_DIRECTORY --stability=dev --repository='{"url": "/path/to/git/clone/of/project/template/", "type": "vcs"}'

Workarounds

Several workarounds are necessary to make Drupal core work correctly when symlinked into the project. These are all taken care of by Composer scripts during installation. Details are below.

Vendor folder

The vendor folder has to be symlinked into the Drupal core repository, because otherwise code in core that expects to find a Composer autoloader fails.

This is done by a Composer script after initial installation. The manual command is:

ln -s ../../vendor ./repos/drupal/vendor

App root index.php patch

The index.php scaffold file has to be patched after it has been copied to web/index.php, because otherwise DrupalKernel guesses the Drupal app root as incorrectly being inside the Drupal core git clone, which means it can't find the settings.php file.

This is done by a Composer script after initial installation. The manual command is:

cd web && patch -p1 <../scaffold/scaffold-patch-index-php.patch

See https://www.drupal.org/project/drupal/issues/3188703 for more detail.

Simpletest folder

When running browser tests, the initial setup of Drupal in FunctionalTestSetupTrait::prepareEnvironment() creates a site folder using the real file locations with symlinks resolved, thus repos/drupal/sites/simpletest, but during the request to the test site, Drupal looks in /web/sites/simpletest.

Additionally, the HTML files output from Browser tests are written into the Drupal core git clone, and so the URLs shown in PHPUnit output are incorrect.

The fix for both of these is to create the simpletest site folder in the web root and symlink it into the Drupal core git clone.

This is done by a Composer script after initial installation. The manual command is:

mkdir -p web/sites/simpletest
ln -s ../../../web/sites/simpletest repos/drupal/sites
Comments
  • Error messages when running composer install, after switching from Drupal core 9.2.x to 9.1.x

    Error messages when running composer install, after switching from Drupal core 9.2.x to 9.1.x

    There is no issue running the steps below when starting a new project with git -

    1. git clone https://git.drupalcode.org/project/drupal.git
    2. cd drupal
    3. composer install (installs drupal 9.2.x by default)
    4. git checkout 9.1.x
    5. composer install

    The steps above, running both composer Install go smooth with no errors.


    But when running similar commands using this repo as a base, results in error - Steps to reproduce:

    1. composer create-project joachim-n/drupal-core-development-project (will install drupal 9.2.x by default)
    2. cd repos/drupal
    3. git checkout 9.1.x
    4. composer install

    error message:

    Generating autoload files
    Could not scan for classes inside "core/lib/Drupal.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Component/DependencyInjection/Container.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Component/FileCache/FileCacheFactory.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Component/Utility/Timer.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Component/Utility/Unicode.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Cache/Cache.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Cache/CacheBackendInterface.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Cache/CacheTagsChecksumInterface.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Cache/CacheTagsChecksumTrait.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Cache/CacheTagsInvalidatorInterface.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Cache/DatabaseBackend.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Cache/DatabaseCacheTagsChecksum.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Database/Connection.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Database/Database.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Database/Driver/mysql/Connection.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Database/Statement.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Database/StatementInterface.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/DependencyInjection/Container.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/DrupalKernel.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/DrupalKernelInterface.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Installer/InstallerRedirectTrait.php" which does not appear to be a file nor a folder
    Could not scan for classes inside "core/lib/Drupal/Core/Site/Settings.php" which does not appear to be a file nor a folder
    Class Drupal\Core\Composer\Composer is not autoloadable, can not call pre-autoload-dump script
    
    
      [RuntimeException]
      Could not scan for classes inside "core/lib/Drupal.php" which does not appear to be a file nor a fold
      er
    
    
    install [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--dry-run] [--dev] [--no-suggest] [--no-dev] [--no-autoloader] [--no-scripts] [--no-progress] [--no-install] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--] [<packages>]...
    
    

    Running composer update instead of the last composer install, runs smoothly, no errors.

    opened by shaal 10
  • ComposerProjectTemplatesTest.php doesn't work

    ComposerProjectTemplatesTest.php doesn't work

    Core tests should pass with this template.

    However, the core tests that cover the Composer project templates in core fail when run in this template:

    vendor/bin/phpunit web/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php --filter=testTemplateCreateProject@recommended-project

    
    1) Drupal\BuildTests\Composer\Template\ComposerProjectTemplatesTest::testTemplateCreateProject with data set "recommended-project" ('drupal/recommended-project', 'composer/Template/RecommendedProject', '/web')
    COMMAND: COMPOSER_HOME=/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home COMPOSER_ROOT_VERSION=9.3.0 composer create-project --no-ansi drupal/recommended-project testproject 9.3.0 -vvv --repository /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/test_repository/packages.json
    OUTPUT:
    ERROR: Running 2.1.9 (2021-10-05 09:47:38) with PHP 7.4.2 on Darwin / 18.7.0
    Reading ./composer.json (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer.json)
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/config.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Loading config file ./composer.json (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer.json)
    Checked CA file /private/etc/ssl/cert.pem: valid
    Reading /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/config.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json)
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Reading /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Creating a "drupal/recommended-project" project at "./testproject"
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/config.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Reading /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/config.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json)
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Reading /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Reading /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/test_repository/packages.json
    Reading file:///Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/test_repository/packages.json
    Writing /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/cache/repo/file----Applications-MAMP-tmp-php-build-workspace-78ba9d21989111c8bc37fa31ec93105eMQDn7J-test-repository-packages.json/packages.json into cache
    Installing drupal/recommended-project (9.3.0)
    Executing command (CWD): rm -rf '/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/testproject'
      - Installing drupal/recommended-project (9.3.0): Symlinking from composer/Template/RecommendedProject
    Created project in /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/testproject
    Reading ./composer.json (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Template/RecommendedProject/composer.json)
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/config.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Loading config file ./composer.json (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Template/RecommendedProject/composer.json)
    Reading /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/config.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/composer.json)
    Loading config file /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Reading /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/auth.json
    Loading composer repositories with package information
    Reading file:///Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/vendor_packages/packages.json
    Writing /Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer-home/cache/repo/file----Applications-MAMP-tmp-php-build-workspace-78ba9d21989111c8bc37fa31ec93105eMQDn7J-vendor-packages-packages.json/packages.json into cache
    Executing command (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/core/): git rev-parse HEAD
    Executing command (CWD): git rev-parse HEAD
    Executing command (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Plugin/Scaffold/): git rev-parse HEAD
    Executing command (CWD): git rev-parse HEAD
    Executing command (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Plugin/ProjectMessage/): git rev-parse HEAD
    Executing command (CWD): git rev-parse HEAD
    Executing command (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Plugin/VendorHardening/): git rev-parse HEAD
    Executing command (CWD): git rev-parse HEAD
    Executing command (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Metapackage/PinnedDevDependencies/): git rev-parse HEAD
    Executing command (CWD): git rev-parse HEAD
    Executing command (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Metapackage/CoreRecommended/): git rev-parse HEAD
    Executing command (CWD): git rev-parse HEAD
    Executing command (/Applications/MAMP/tmp/php/build_workspace_78ba9d21989111c8bc37fa31ec93105eMQDn7J/composer/Metapackage/DevDependencies/): git rev-parse HEAD
    Executing command (CWD): git rev-parse HEAD
    Updating dependencies
    Generating rules
    Resolving dependencies through SAT
    Looking at all rules.
    
    Dependency resolution completed in 0.001 seconds
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core-recommended ^9.3 -> satisfiable by drupal/core-recommended[9.3.0].
        - drupal/core-recommended 9.3.0 requires composer/semver 3.2.5 -> found composer/semver[3.2.4] but it does not match the constraint.
      Problem 2
        - Root composer.json requires drupal/core-dev ^9.3 -> satisfiable by drupal/core-dev[9.3.0].
        - drupal/core-dev 9.3.0 requires friends-of-behat/mink-browserkit-driver ^1.4 -> could not be found in any version, there may be a typo in the package name.
    
    Potential causes:
     - A typo in the package name
     - The package is not available in a stable-enough version according to your minimum-stability setting
       see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
     - It's a private package and you forgot to add a custom repository to find it
    
    Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
    
    
    Failed asserting that 2 matches expected 0.
    
    /Users/joachim/Sites/drupal-core-composer/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php:96
    /Users/joachim/Sites/drupal-core-composer/repos/drupal/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:300
    /Users/joachim/Sites/drupal-core-composer/repos/drupal/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:287
    /Users/joachim/Sites/drupal-core-composer/repos/drupal/core/tests/Drupal/BuildTests/Composer/Template/ComposerProjectTemplatesTest.php:209
    /Users/joachim/Sites/drupal-core-composer/vendor/phpunit/phpunit/src/Framework/TestResult.php:722
    /Users/joachim/Sites/drupal-core-composer/vendor/phpunit/phpunit/src/Framework/TestSuite.php:677
    /Users/joachim/Sites/drupal-core-composer/vendor/phpunit/phpunit/src/Framework/TestSuite.php:677
    /Users/joachim/Sites/drupal-core-composer/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:667
    /Users/joachim/Sites/drupal-core-composer/vendor/phpunit/phpunit/src/TextUI/Command.php:143
    /Users/joachim/Sites/drupal-core-composer/vendor/phpunit/phpunit/src/TextUI/Command.php:96
    
    opened by joachim-n 7
  • [drush] Uncaught Exception: Could not locate autoload.php when `vendor/` folder is symlinked

    [drush] Uncaught Exception: Could not locate autoload.php when `vendor/` folder is symlinked

    When executing any drush command, I get this weird exception: Uncaught Exception: Could not locate autoload.php. cwd is /var/www/html; __DIR__ is /var/www/html/web/vendor/drush/drush

    Specifically I'm using: Host setup : DDEV 1.19 Drupal version : 9.4.0-dev Drush version : 10.6.2 Drush script : /var/www/html/vendor/bin/drush

    When using Xdebug, I can see in order:

    1. vendor/bin/drush is executed
    2. vendor/drush/drush/drush is executed
    3. vendor/drush/drush/drush.php is executed. And vendor/autoload.php is found
    4. then during executing the command **web/**vendor/drush/drush/drush.php is called, and the autoload.php is not found for some reason.

    This is either when I execute drush or vendor/bin/drush or vendor/drush/drush/drush, always from the root of the project /var/www/html.

    opened by gambry 5
  • Dependency conflicts of Drupal core 8.9.x and var-dumper:^5.1

    Dependency conflicts of Drupal core 8.9.x and var-dumper:^5.1

    This line in composer.json gives me trouble... https://github.com/joachim-n/drupal-core-development-project/blob/main/composer.json#L39

    "symfony/var-dumper": "^5.1"
    

    Steps to replicate -

    1. cd repos/drupal
    2. git checkout 8.9.x
    3. composer update
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core * -> satisfiable by drupal/core[8.9.x-dev].
        - Conclusion: don't install symfony/console v3.4.11 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper 5.3.x-dev (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.12 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper 5.4.x-dev (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.13 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.0-BETA1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.14 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.0-BETA1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.15 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.0-BETA2 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.16 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.0-BETA3 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.17 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.3.0-BETA1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.18 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.3.0-BETA2 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.19 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.3.0-BETA3 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.20 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.0-RC1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.21 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.0-RC2 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.22 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.0-RC1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.23 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.0-RC2 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.24 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.3.0-RC1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.25 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.0 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.26 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.27 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.2 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.28 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.3 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.29 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.4 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.30 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.5 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.31 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.6 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.32 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.7 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.33 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.8 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.34 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.9 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.35 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.10 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.36 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.1.11 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.37 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.0 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.38 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.1 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.39 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.2 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.40 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.3 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.41 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.4 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.42 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.5 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.43 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.6 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.44 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.7 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.45 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.8 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.46 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.2.10 (conflict analysis result)
        - Conclusion: don't install symfony/console v3.4.47 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper v5.3.0 (conflict analysis result)
        - Conclusion: don't install symfony/var-dumper 5.2.x-dev (conflict analysis result)
        - drupal/core 8.9.x-dev requires symfony/console ~3.4.0 -> satisfiable by symfony/console[v3.4.0-BETA1, ..., 3.4.x-dev].
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.10.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.9.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.8.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.7.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.6.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.5.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.4.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.3.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.2.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.1.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.0.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.0-RC2.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.0-RC1.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.0-BETA4.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.0-BETA3.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.0-BETA2.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console v3.4.0-BETA1.
        - symfony/var-dumper 5.1.x-dev conflicts with symfony/console 3.4.x-dev.
        - Root composer.json requires symfony/var-dumper ^5.1 -> satisfiable by symfony/var-dumper[v5.1.0-BETA1, ..., 5.4.x-dev].
    
    Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
    
    opened by shaal 3
  • Project does not work with core's 10.0.x branch

    Project does not work with core's 10.0.x branch

    Installed per the instructions in the readme, and then switched to the 10.0.x branch. Kicked off a DDEV project with it and the project errors with:

    Warning: require(/var/www/html/vendor/composer/../../web/core/includes/guzzle_php81_shim.php): Failed to open stream: No such file or directory in /var/www/html/vendor/composer/autoload_real.php on line 75

    Fatal error: Uncaught Error: Failed opening required '/var/www/html/vendor/composer/../../web/core/includes/guzzle_php81_shim.php' (include_path='/var/www/html/vendor/pear/pear_exception:/var/www/html/vendor/pear/console_getopt:/var/www/html/vendor/pear/pear-core-minimal/src:/var/www/html/vendor/pear/archive_tar:.:/usr/share/php') in /var/www/html/vendor/composer/autoload_real.php:75 Stack trace: #0 /var/www/html/vendor/composer/autoload_real.php(65): composerRequirebe8a091bca0079a3222cb044f9050d36('6db5533840cb1ae...', '/var/www/html/v...') #1 /var/www/html/vendor/autoload.php(7): ComposerAutoloaderInitbe8a091bca0079a3222cb044f9050d36::getLoader() #2 /var/www/html/repos/drupal/autoload.php(14): require('/var/www/html/v...') #3 /var/www/html/repos/drupal/core/install.php(38): require_once('/var/www/html/r...') #4 {main} thrown in /var/www/html/vendor/composer/autoload_real.php on line 75

    opened by andy-blum 2
  • DRUPAL_ROOT value is the symlinked directory, instead of the project location

    DRUPAL_ROOT value is the symlinked directory, instead of the project location

    Describe the bug

    When installing a Drupal website that is based on this project, DRUPAL_ROOT gets the wrong value - /var/www/html/repos/drupal.

    To Reproduce

    1. Install a Drupal website based on this project's setup.
    2. using Xdebug, place a breakpoint in web/core/includes/bootstrap.inc, after the line where DRUPAL_ROOT gets value define('DRUPAL_ROOT', dirname(__DIR__, 2));
    3. Confirm that DRUPAL_ROOT gets the wrong value of repos/drupal instead of the directory where Drupal project is.

    Expected behavior

    I expect DRUPAL_ROOT to be set like a regular Drupal website (and not in `/repos/drupal')

    Screenshots

    Version and configuration information (please complete the following information)

    Additional context

    opened by shaal 2
  • Reduce composer install running time from over 6 minutes to 20 seconds

    Reduce composer install running time from over 6 minutes to 20 seconds

    When running

    cd repos/drupal 
    git checkout 8.9.x
    

    Followed by -

    time composer install -vvv
    

    You'll see that it takes over 6 minutes to complete.

    I was able to narrow down the issue to prophecy-phpunit. When not specifying a version ( '*'), it will install version 1 of that package for Drupal 8.9.x, 9.0.x, and version 2 for Drupal 9.1.x and Drupal 9.2.x

    Please note, before this PR, while composer install takes a very long time to run, it DOES install prophecy-phpunit version 2 for any Drupal core version. (I didn't know how to test if it breaks in any of the scenarios)

    opened by shaal 2
  • Contrib tests can not be executed

    Contrib tests can not be executed

    I would want to use drupal-core-development-project for contrib development too but currently I can not do that. Tests for contrib are failing. Core tests work ok.

    Running

    phpunit web/modules/contrib/devel
    

    Gives error

    Fatal error: Uncaught Error: Class "Drupal\Tests\devel_generate\Functional\DevelGenerateBrowserTestBase" not found in /var/www/web/modules/contrib/devel/devel_generate/tests/src/Functional/DevelGenerateBrowserTest.php:14
    
    opened by mikran 5
  • Feature/alternative include

    Feature/alternative include

    An experiement if it is possible without patches but with a little trick in the web directory we use on our projects.

    This adds:

    • index.php and update.php that includes core
    • symlink for sites/default/files since there is css there

    It seems to work pretty fine but because i use a custom packages.json it is not completely as it would be when in the main repository.

    Tested usinig: drupal-core-development-packages.json

    {
        "packages": {
            "joachim-n/drupal-core-development-project": {
                "dev-master": {
                    "name": "joachim-n/drupal-core-development-project",
                    "version": "2.0.0",
                    "source": {
                        "url": "[email protected]:bbrala/drupal-core-development-project",
                        "type": "git",
                        "reference": "7ca81136b274d056e3f5fb21c16d7213f1520bd5"
                    }
                }
            }
        }
    }
    
    

    Command: composer create-project --repository=./drupal-core-development-packages.json joachim-n/drupal-core-development-project coredev5 -vvv

    opened by bbrala 5
  • Add ability to easily check Drupal coding standards

    Add ability to easily check Drupal coding standards

    Would you consider it in scope to include drupal-check or similar to allow for easily checking for Drupal coding standards issues when working on core?

    opened by markdorison 1
Releases(1.0.5)
  • 1.0.5(May 19, 2022)

  • 1.0.4(Jan 28, 2022)

    • Add drush support for Drupal 10 core development
    • Added drupal/core-recommended and drupal/core-dev as path repositories, so that package versions are fixed to what core defines and dev dependencies are installed.
    • Added allowed plugins.
    • Added autoload declaration of Drupal's Composer classes - fixes core Composer tests not working.
    Source code(tar.gz)
    Source code(zip)
Owner
Joachim
Joachim
Pantheon platform's standard Drupal upstream, and recommended starter template for custom upstreams.

Composer-enabled Drupal template This is Pantheon's recommended starting point for forking new Drupal upstreams that work with the Platform's Integrat

Pantheon 5 Oct 11, 2022
This is a simple example project demonstrating the Lupus Nuxt.js Drupal Stack.

Lupus Nuxt.js Drupal Stack - Example project This is a simple example project demonstrating the Lupus Nuxt.js Drupal Stack. Introduction Please refer

drunomics 11 Dec 28, 2022
Code for database forms and Drupal module for the Lobbywatch.ch project

Lobbywatch.ch Lobbywatch.ch - the platform for transparent politics. Lobbywatch.ch maintains a database with links of politicians and lobby groups. Th

Lobbywatch 29 Dec 1, 2022
Textpattern-plugin-template - A template for building plugins for Textpattern CMS.

Plugin template for Textpattern CMS Developer documentation Refer to the Textpattern plugin development documentation, and notably the Plugin template

Textpattern CMS 17 Apr 17, 2022
PinteClone - Pinterest clone using Symfony 5

PinteClone PinteClone can be used: to find the best picture that you need. Programming languages & Frameworks used: PHP Javascript Twig Css (Bootstrap

Iliass Alami Qammouri 3 Apr 26, 2021
Clone do instagram utilizando Laravel, Vue, Inertia, Tailwind

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Bortolin Furlanetto 1 Jan 3, 2022
TweetNow is a Twitter clone created with Vue.js and Laravel. It is a social media platform that allows users to post short messages, follow other users, and engage in conversations through comments and likes.

TweetNow TweetNow is a opensource social media created with Vue.js+Inertia SSR and Laravel. It is a social media platform that allows users to post sh

I.E.U. Juboraj Naofel 12 Jun 16, 2023
Scaffolding to add some Mojo to your Drupal projects.

mojo-drupal-scaffold Scaffolding to add some Mojo to your Drupal projects. This package adds scaffolding files for your Drupal project by integrating

Bluehorn Digital 5 Mar 15, 2022
One click, Fully Decoupled Drupal Site starter-kit with Druxt

DruxtSite quickstart - Drupal One click, Fully Decoupled Drupal Site starter-kit with Druxt. DruxtSite connects Drupal to Nuxt via JSON:API to provide

DruxtJS 12 Jan 3, 2023
Starter-kit for running a Drupal 9 website with Tome in Gitpod

DrupalPod + Tome Starter-kit Starter-kit for running a Drupal 9 website with Tome in Gitpod Getting started Click the Use this template button in GitH

DrupalPod 3 Apr 15, 2022
Starter-kit for running a Drupal 9 website in Gitpod

DrupalPod Starter-kit Starter-kit for running a Drupal 9 website in Gitpod Getting started Click the Use this template button in GitHub and follow the

DrupalPod 9 Nov 3, 2022
Drupal's Typed Data API by example

Drupal's Typed Data API by example This repository aims to help show use cases and various exercises with using Drupal's Typed Data API. The Typed Dat

Matt Glaman 34 Nov 9, 2022
Play with NFTs in Drupal !

Drupal NFT project This is a template to quickly test the NFT module: https://www.drupal.org/project/nft Requirements: Install Composer Install Lando

Matthieu SCARSET 4 Dec 6, 2022
Start a new Laravel 8 project with the AdminLTE template installed.

AdminLTE template Laravel 8 package Start a new Laravel 8 project with the AdminLTE template installed. Installation Create database. Clone repository

Mairo Rodrigues 12 Dec 21, 2022
Symfony React Blank is a blank symfony and react project, use this template to start your app using Symfony as an backend api and React as a frontend library.

Symfony React Blank Symfony React Blank is a blank symfony and react project, use this template to start your app using Symfony as an backend api and

Antoine Kingue 2 Nov 5, 2021
Yii 2 Advanced Project Template

Yii 2 Advanced Project Template Yii 2 Advanced Project Template is a skeleton Yii 2 application best for developing complex Web applications with mult

Sanakulov 1 Nov 1, 2021
Mazer is a Admin Dashboard Template that can help you develop faster. We bring Mazer with Laravel starter project.

Mazer is a Admin Dashboard Template that can help you develop faster. We bring Mazer with Laravel starter project. It's completely free and you can use it in your projects.

Saugi 118 Dec 20, 2022
FacEssential is a Core for PMMP, it gathers all kind of plugins needed to create a faction server. It was created from scratch by Clouds#0667.

FacEssential FacEssential is a Core for PMMP, it gathers all kind of plugins needed to create a faction server. It was created from scratch by Clouds#

Zoumi 10 Jun 13, 2022