Topic on Skin talk:Chameleon

maintenance/update.php - Error: your composer.lock file is not up to date.

7
Summary by Spas.Z.Spasov

Edit composer.json and move Chameleon definition: "mediawiki/chameleon-skin": "~1.0" from "require": {...} section into "require-dev": {...} section. After that run composer update. Now maintenance/update.php must be working and Chameleon 1.5 also must.

It installs Chameleon as a development package, though, so better don't use composer update --no-dev in the future.

Spas.Z.Spasov (talkcontribs)

Chameleon skin 1.5 causes an error in maintenance/update.php script:


MediaWiki 1.28.0 Updater

mediawiki/chameleon-skin: 1.5.0 installed, 1.* required.

Error: your composer.lock file is not up to date. Run "composer update" to install newer dependencies

Nor composer update neither composer update --no-dev helps.

I know something in composer.lock must be changed but I don't have an idea what exactly.

Please help!

F.trott (talkcontribs)

You should not manually change composer.lock

What is the output of composer update?

Spas.Z.Spasov (talkcontribs)

composer update:

> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing composer/spdx-licenses (1.1.4)
    Loading from cache
  - Installing jakub-onderka/php-parallel-lint (v0.9.2)
    Loading from cache
  - Installing squizlabs/php_codesniffer (2.6.0)
    Loading from cache
...
jakub-onderka/php-parallel-lint suggests installing jakub-onderka/php-console-highlighter (Highlight syntax in code snippet)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
symfony/yaml suggests installing symfony/console (For validating YAML files using the lint command)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
wikimedia/avro suggests installing ext-gmp (Large integer support for 32-bit platforms.)
Writing lock file
Generating optimized autoload files

composer update once again:

> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files

composer update --no-dev:

> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Updating dependencies
  - Removing justinrainbow/json-schema (3.0.1)
  - Removing wikimedia/avro (v1.7.7)
  - Removing phpunit/phpunit (4.8.24)
...
Writing lock file
Generating optimized autoload files
F.trott (talkcontribs)

Hmm, that looks good and should normally pass. Two things you could try:

  1. Uninstall and re-install Chameleon completely OR
  2. Run update.php with parameter --skip-external-dependencies
Spas.Z.Spasov (talkcontribs)

Uninstall and re-install Chameleon doesn't solved this issue.

...

I have edited composer.json and moved Chameleon definition from "require": {...} section into "require-dev": {...}. Next step was composer update. Now maintenance/update.php works and Chameleon 1.5 also works.

Strange. Cheers! :)

F.trott (talkcontribs)

That'll work as well. It installs Chameleon as a development package, though, so better don't use composer update --no-dev in the future.

Spas.Z.Spasov (talkcontribs)

Yes, I found it. Thanks.