Page MenuHomePhabricator

Add composer version checking to MW?
Open, Needs TriagePublic

Description

This might not be needed... But we should potentially add some sort of composer version checking to MW so that people only use a version of composer that's supported (see parent)

https://blog.packagist.com/composer-2-0-is-now-available/

Related Objects

Event Timeline

Change 636227 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/core@master] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/636227

Change 636228 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/vendor@master] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/636228

With the above patch... It's not pretty, but is it sufficient/a good idea?

The "wikimedia/composer-merge-plugin" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires wikimedia/composer-merge-plugin 1.4.1 -> satisfiable by wikimedia/composer-merge-plugin[v1.4.1].
    - wikimedia/composer-merge-plugin v1.4.1 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.

You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.

reedy@ubuntu64-web-esxi:/var/www/wiki/mediawiki/core$ git diff
diff --git a/composer.json b/composer.json
index 36284b40e0..d03a9caee0 100644
--- a/composer.json
+++ b/composer.json
@@ -18,6 +18,7 @@
        },
        "prefer-stable": true,
        "require": {
+               "composer-plugin-api": "^1.1",
                "composer/semver": "1.5.1",
                "cssjanus/cssjanus": "1.3.0",
                "ext-ctype": "*",

Change 636228 merged by jenkins-bot:
[mediawiki/vendor@master] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/636228

Do we want to do this "properly" or will this suffice?

Change 640495 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/core@REL1_35] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/640495

Change 640496 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/core@REL1_31] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/640496

Change 636227 merged by jenkins-bot:
[mediawiki/core@master] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/636227

Change 640496 merged by jenkins-bot:
[mediawiki/core@REL1_31] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/640496

Change 640495 merged by jenkins-bot:
[mediawiki/core@REL1_35] composer.json: add requirement for composer-plugin-api ^1.1

https://gerrit.wikimedia.org/r/640495

Do we want to do this "properly" or will this suffice?

Any opinions? (Reedy maybe?)

Do we want to do this "properly" or will this suffice?

Not sure. I wish I could say we could solve this with Documentation alone, but I doubt we can.

Especially when composer 2.0 is the stable/"default" download.

Probably worth mulling over a bit more