Problem/Motivation
In preparation to expose Drupal Components outside of Drupal we added a composer.json file to every component and a "replace" section to core/composer.json.
But:
- some components requirement declarations are incorrect
- some components are missing from the drupal/core replace section
- some composer files are missing from Drupal\Tests\ComposerIntegrationTest::getPaths()
Examples:
- drupal/core-event-dispatcher declares "symfony/event-dispatcher": "2.7.*"
, drupal/core replaces "drupal/core-event-dispatcher": "self.version"
, drupal/core requires "symfony/event-dispatcher": "~2.8"
- drupal/core-dependency-injection declares "symfony/dependency-injection": "2.7.*"
; drupal/core requires "symfony/dependency-injection": "~2.8"
. Here drupal/core-dependency-injection is missing from the drupal/core replace section.
- drupal/core-dependency-injection declares "symfony/expression-language": "2.7.*"
; symfony/expression-language is not required by drupal/core.
- #2712647: Update Symfony components to ~3.2 has a patch which updates core/composer.json but not the core component composer files.
Proposed resolution
- Fix the drupal/core replace section to have all drupal/core-* components declared.
- Fix Drupal\Tests\ComposerIntegrationTest::getPaths()
to cover all drupal/core-* composer files.
- Track down all drupal/core-* components external dependencies that are also required by drupal/core but still have have an old version requirement declaration after drupal/core updated its version requirement. Update the components composer.json to match drupal/core in this respect.
- Test coverage?
#2720811: Fix package names of drupal/core-fileCache and drupal/core-phpStorage
#2744357: drupal/core-* components Symfony requirements conflict with drupal/core
#2744383: drupal/core-dependency-injection is missing from the drupal/core replace section
#2747083: drupal/core-dependency-injection wrongly requires symfony/expression-language
#2752119: drupal/core-render is missing from the drupal/core replace section
#2752127: drupal/core-assertion is missing from the drupal/core replace section
#2759839: Rename drupal/core-httpFoundation, add it to drupal/core replace section
Comments
Comment #2
Eric_A CreditAttribution: Eric_A commentedComment #3
Eric_A CreditAttribution: Eric_A commentedComment #4
dawehnerPatching those sounds like a novice task.
Comment #5
Eric_A CreditAttribution: Eric_A commentedComment #6
Eric_A CreditAttribution: Eric_A commentedComment #7
Eric_A CreditAttribution: Eric_A commentedComment #8
Eric_A CreditAttribution: Eric_A commentedComment #9
Eric_A CreditAttribution: Eric_A commentedComment #10
Eric_A CreditAttribution: Eric_A commentedComment #11
Eric_A CreditAttribution: Eric_A commentedComment #12
Eric_A CreditAttribution: Eric_A commentedI've moved the Novice Symfony version fix to #2744357: drupal/core-* components Symfony requirements conflict with drupal/core.
#2720811: Fix package names of drupal/core-fileCache and drupal/core-phpStorage seems like a issue for novices, too.
Comment #13
Eric_A CreditAttribution: Eric_A commentedComment #14
Eric_A CreditAttribution: Eric_A commentedCreated two more novice issues:
- #2752119: drupal/core-render is missing from the drupal/core replace section
- #2752127: drupal/core-assertion is missing from the drupal/core replace section
Comment #15
Eric_A CreditAttribution: Eric_A commentedComment #16
Eric_A CreditAttribution: Eric_A commentedComment #17
Mile23+1 on this work. Rock on. :-)
That will be the final build process.
Hopefully many of these 'replaces' will be removed because they're splits that will be pulled in and put in
vendor/
.Comment #18
Eric_A CreditAttribution: Eric_A commentedOne more missing from the replace section. Think this is the last one.
#2759839: Rename drupal/core-httpFoundation, add it to drupal/core replace section
Comment #19
Eric_A CreditAttribution: Eric_A commentedHere's another novice issue: #2771331: drupal/core-uuid composer.json not tested by \Drupal\Tests\ComposerIntegrationTest::testComposerJson()
Comment #20
Eric_A CreditAttribution: Eric_A commentedAll child issues fixed here!