The tests are failing for D7 with an unusual error:

00:00:09.514 Package operations: 3 installs, 0 updates, 0 removals
00:00:09.519 - Installing drupal/token (1.6.0) Cloning 7.x-1.6
00:00:10.792 - Installing drupal/ctools (1.12.0) Cloning 7.x-1.12
00:00:12.379 - Installing drupal/metatag (dev-1.x 491890c) Cloning 491890cfe4
00:00:14.279 Writing lock file
00:00:14.279 Generating autoload files
00:00:14.324 Adding testing (require-dev) dependencies.
00:00:14.324 Composer Command: ./bin/composer require 'drupal/context:*' 'drupal/devel:*' 'drupal/entity:*' 'drupal/entity_translation:*' 'drupal/file_entity:*' 'drupal/i18n:*' 'drupal/imagecache_token:*' 'drupal/me:*' 'drupal/media:>=2.0, <3.0' 'drupal/metatag_dc:*' 'drupal/metatag_opengraph:*' 'drupal/panels:*' 'drupal/profile2:*' 'drupal/search_api:*' 'drupal/views:*' 'drupal/workbench_moderation:*' --prefer-stable --no-progress --no-suggest --working-dir /var/lib/drupalci/workspace/jenkins-default-302361/source
00:00:14.406 ./composer.json has been updated
00:00:21.639 Your requirements could not be resolved to an installable set of packages.
00:00:21.641
00:00:21.641 Problem 1
00:00:21.641 - The requested package drupal/metatag_dc could not be found in any version, there may be a typo in the package name.
00:00:21.642 Problem 2
00:00:21.642 - The requested package drupal/metatag_opengraph could not be found in any version, there may be a typo in the package name.

CommentFileSizeAuthor
#3 metatag-n2844504-3.patch14.15 KBdamienmckenna

Comments

DamienMcKenna created an issue. See original summary.

damienmckenna’s picture

These two items are listed as dependencies in some of the submodules, e.g. metatag_opengraph_products lists metatag_opengraph as a dependency.

It seems like the problem might be that the dependencies have to be in the format "[project]:[module]", just doing "[module]" appears to be throwing it.

damienmckenna’s picture

Project: DrupalCI: Test Runner » Metatag
Version: » 7.x-1.x-dev
Component: Testrunner Codebase » Miscellaneous
Status: Active » Needs review
StatusFileSize
new14.15 KB

Lets see if adding the project prefixes to all dependencies will solve the problem.

  • DamienMcKenna committed 60ef482 on 7.x-1.x
    Issue #2844504 by DamienMcKenna: Add project names to all dependencies.
    
damienmckenna’s picture

Committed and pushed. Now lets see if the testbots fail again.

damienmckenna’s picture

Project: Metatag » DrupalCI: Test Runner
Version: 7.x-1.x-dev »
Component: Miscellaneous » Testrunner Codebase

Moving back to DrupalCI, the bug persists after the commit: https://dispatcher.drupalci.org/job/default/302371/console

damienmckenna’s picture

Honestly I don't see any point in using Composer to install dependencies if there is not a composer.json file included.

damienmckenna’s picture

Status: Needs review » Needs work

The 8.x-1.x branch is also failing with similar problems:

00:00:41.608 Composer Command: ./bin/composer require 'drupal/metatag_dc:*' 'drupal/metatag_open_graph:*' --prefer-stable --no-progress --no-suggest --working-dir /var/lib/drupalci/workspace/jenkins-default-302560/source

https://dispatcher.drupalci.org/job/default/302560/console

Mixologic’s picture

Assigned: Unassigned » Mixologic
Priority: Normal » Major

We've been in a staff retreat this morning. Looking into this now.

Mixologic’s picture

Okay, the root cause of this issue has been solved - it was a permissions conflict between the process that creates releases, and the process that handles new git commits to dev branches. So this should be fixed, finally.

As far as to why to use composer to build the codebase, even when there isnt a composer.json - theres several reasons.

  • In order for maintainers to modify their dependencies and test dependencies in a patch, composer is required, because the testbots do *not* introspect the .info/info.yml files for changes, whereas changes to composer.json's can be detected by composer.
  • Composer is much, much better at figuring out dependencies. The current methodology that project dependency uses to recursively hunt for dependencies doesn't factor in different version constraints into account, so we've historically had issues addressing failed tests due to missing dependencies.
  • In order to test any projects that do rely on composer.json, we have to have a build process that utilizes composer to build the codebase, so if we built the codebase using a list of projects to clone *and* built the codebase using composer, we would have to maintain two separate code paths to accomplish the same thing.
  • The composer facade is intended to work for all modules, not just modules that rely on composer.json, so using in the testing infrastructure also exposes issues like we just saw - we might not have known about that permissions issue if metatag tests hadn't alerted us that something was wrong.

Metatag really seems to have been the canary in the deployment coal mine and just about every issue we've run into has hit Metatag first.

Im really grateful for your patience in this process and I feel awful having caused you any frustration.

damienmckenna’s picture

Status: Needs work » Fixed

Thanks for taking the time to work through the problem, I really appreciate the effort you've put into improving DrupalCI. It all seems to be good now.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.