ProfessionalWiki / chameleon

Provides a highly flexible and customizable skin using Bootstrap 4
https://www.mediawiki.org/wiki/Skin:Chameleon
Other
115 stars 63 forks source link

Hooks and database errors after installing chameleon via Composer #392

Closed Ainz closed 10 months ago

Ainz commented 10 months ago

Greetings...

All the composer commands, including the undocumented composer update finalized with zero issues. Everything in place and checked via directory on server.

When reloading my MediaWiki page it throws several errors. I am unable to verify installation vis Special/Versions either.


Backtrace:

from /home/thesite.com/skins/chameleon/src/Chameleon.php(78)
#0 /home/thesite.com/includes/HookContainer/HookContainer.php(338): Skins\Chameleon\Chameleon::Skins\Chameleon\{closure}()
#1 /home/thesite.com/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook()
#2 /home/thesite.com/includes/HookContainer/HookRunner.php(3424): MediaWiki\HookContainer\HookContainer->run()
#3 /home/thesite.com/includes/Setup.php(440): MediaWiki\HookContainer\HookRunner->onSetupAfterCache()
#4 /home/thesite.com/includes/WebStart.php(92): require_once(string)
#5 /home/thesite.com/index.php(44): require(string)
#6 {main}

Notice: Uncommitted DB writes (transaction from Wikimedia\Rdbms\Database::beginIfImplied (User::loadFromDatabase)) in /home/thesite.com/includes/libs/rdbms/database/TransactionManager.php on line 586

Notice: DB transaction writes or callbacks still pending (LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite, LCStoreDB::finishWrite) in /home/thesite.com/includes/libs/rdbms/database/Database.php on line 3526

The MW site is new and there is nothing but default settings and files on it. The only additions to LocalSettings.php are those specified for installation of chameleon and bootstrap. Site works after commenting out those lines, running PHP 8.1. MW version 1.40.

Wait, maybe that's it... should I scrap MW 1.40 and install 1.39?

Any other ideas on what is causing this?

malberts commented 10 months ago

I have not looked into this, but our unit tests run and pass on MW 1.40 with PHP 8.1

Can you confirm in skins/chameleon/skin.json that you have version 4.2.1?

Ainz commented 10 months ago

hi, thanks.

skin.json has the following content.

    "name": "chameleon",
    "namemsg": "skinname-chameleon",
    "type": "skin",
    "author": [
        "[https://www.mediawiki.org/wiki/User:F.trott Stephan Gambke]",
        "[https://professional.wiki/ Professional.Wiki]"
    ],
    "version": "4.0.0",
    "url": "https://www.mediawiki.org/wiki/Skin:Chameleon",
    "descriptionmsg": "chameleon-desc",
    "license-name": "GPL-3.0-or-later",
    "requires": {
        "MediaWiki": ">= 1.35.0",
        "extensions": {
            "Bootstrap": "~4.5"
        }
    },
    "AutoloadNamespaces": {
        "Skins\\Chameleon\\": "src/",
        "Skins\\Chameleon\\Tests\\": "tests/phpunit/"
    },
    "MessagesDirs": {
        "Chameleon": "resources/i18n"
    },
    "config_prefix": "eg",
    "config": {
        "ChameleonLayoutFile": {
            "path": true,
            "value": "layouts/standard.xml"
        },
        "ChameleonThemeFile": {
            "path": true,
            "value": "resources/styles/themes/_light.scss"
        },
        "ChameleonEnableVisualEditor": {
            "value": true
        },
        "ChameleonEnableExternalLinkIcons": {
            "value": false
        }
    },
    "ResourceModules": {
        "skins.chameleon": {
            "class": "ResourceLoaderSkinModule",
            "features": [ "elements", "content", "legacy", "toc" ],
            "targets": [
                "desktop",
                "mobile"
            ]
        }
    },
    "callback": "Skins\\Chameleon\\Chameleon::init",
    "load_composer_autoloader": true,
    "manifest_version": 2
}
malberts commented 10 months ago

Your version is a year old: "version": "4.0.0".

Download the latest version of Chameleon which is 4.2.1.

Ainz commented 10 months ago

Well, using composer, as specified in the first post, I assumed it fetched the latest version.

I suppose I can overwrite the files.

malberts commented 10 months ago

When I run these 2 commands:

COMPOSER=composer.local.json composer require --no-update mediawiki/chameleon-skin:~4.0
composer update mediawiki/chameleon-skin --no-dev -o

It gets the latest version 4.2.1: Screenshot_20230831_082734

Did you include the ~ character? Otherwise it will get 4.0.

What does your composer.local.json file look like?

Ainz commented 10 months ago

I ran those commands exactly as you type them. Copy pasted.

my composer.local.json is

{
    "config": {
        "allow-plugins": {
            "wikimedia/composer-merge-plugin": true
        }
    },
    "require": {
        "mediawiki/chameleon-skin": "4.0"
    }
}
malberts commented 10 months ago

"mediawiki/chameleon-skin": "4.0"

That should be "mediawiki/chameleon-skin": "~4.0" Then run the second update command again.

Ainz commented 10 months ago

Updated.

Ok, going for that in a bit.

Ainz commented 10 months ago
composer update mediawiki/chameleon-skin --no-dev -o

> ComposerHookHandler::onPreUpdate
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
  - Upgrading mediawiki/chameleon-skin (4.0.0 => 4.2.1)
Writing lock file
Installing dependencies from lock file
Package operations: 0 installs, 1 update, 70 removals
  - Downloading mediawiki/chameleon-skin (4.2.1)
  - Removing wmde/hamcrest-html-matchers (v1.0.0)
  - Removing wikimedia/testing-access-wrapper (2.0.0)
  - Removing wikimedia/langconv (0.4.2)
  - Removing wikimedia/alea (1.0.0)
  - Removing webmozart/assert (1.11.0)
  - Removing tysonandre/var_representation_polyfill (0.1.3)
  - Removing theseer/tokenizer (1.2.1)
  - Removing symfony/var-dumper (v6.3.4)
  - Removing symfony/string (v6.3.2)
  - Removing symfony/service-contracts (v2.5.2)
  - Removing symfony/polyfill-intl-normalizer (v1.27.0)
  - Removing symfony/polyfill-intl-grapheme (v1.27.0)
  - Removing symfony/console (v6.3.4)
  - Removing squizlabs/php_codesniffer (3.7.2)
  - Removing seld/jsonlint (1.8.3)
  - Removing sebastian/version (3.0.2)
  - Removing sebastian/type (3.2.1)
  - Removing sebastian/resource-operations (3.0.3)
  - Removing sebastian/recursion-context (4.0.5)
  - Removing sebastian/object-reflector (2.0.4)
  - Removing sebastian/object-enumerator (4.0.4)
  - Removing sebastian/lines-of-code (1.0.3)
  - Removing sebastian/global-state (5.0.6)
  - Removing sebastian/exporter (4.0.5)
  - Removing sebastian/environment (5.1.5)
  - Removing sebastian/diff (4.0.5)
  - Removing sebastian/complexity (2.0.2)
  - Removing sebastian/comparator (4.0.8)
  - Removing sebastian/code-unit-reverse-lookup (2.0.3)
  - Removing sebastian/code-unit (1.0.8)
  - Removing sebastian/cli-parser (1.0.1)
  - Removing sabre/event (5.1.4)
  - Removing psy/psysh (v0.11.20)
  - Removing psr/cache (3.0.0)
  - Removing phpunit/phpunit (9.5.28)
  - Removing phpunit/php-timer (5.0.3)
  - Removing phpunit/php-text-template (2.0.4)
  - Removing phpunit/php-invoker (3.1.1)
  - Removing phpunit/php-file-iterator (3.0.6)
  - Removing phpunit/php-code-coverage (9.2.27)
  - Removing phpstan/phpdoc-parser (1.23.1)
  - Removing phpdocumentor/type-resolver (1.7.3)
  - Removing phpdocumentor/reflection-docblock (5.3.0)
  - Removing phpdocumentor/reflection-common (2.2.0)
  - Removing php-parallel-lint/php-parallel-lint (v1.3.2)
  - Removing php-parallel-lint/php-console-highlighter (v1.0.0)
  - Removing php-parallel-lint/php-console-color (v1.0.1)
  - Removing phar-io/version (3.2.1)
  - Removing phar-io/manifest (2.0.3)
  - Removing phan/phan (5.4.1)
  - Removing nikic/php-parser (v4.17.1)
  - Removing netresearch/jsonmapper (v4.2.0)
  - Removing myclabs/deep-copy (1.11.1)
  - Removing microsoft/tolerant-php-parser (v0.1.1)
  - Removing mediawiki/phan-taint-check-plugin (4.0.0)
  - Removing mediawiki/mediawiki-phan-config (0.12.1)
  - Removing mediawiki/mediawiki-codesniffer (v41.0.0)
  - Removing johnkary/phpunit-speedtrap (v4.0.1)
  - Removing hamcrest/hamcrest-php (v2.0.1)
  - Removing giorgiosironi/eris (0.13.0)
  - Removing felixfbecker/advanced-json-rpc (v3.2.1)
  - Removing doctrine/sql-formatter (1.1.1)
  - Removing doctrine/instantiator (2.0.0)
  - Removing doctrine/event-manager (1.2.0)
  - Removing doctrine/deprecations (v1.1.1)
  - Removing doctrine/dbal (3.4.2)
  - Removing doctrine/cache (2.2.0)
  - Removing composer/xdebug-handler (3.0.3)
  - Removing composer/spdx-licenses (1.5.7)
  - Removing composer/pcre (3.1.0)
  - Upgrading mediawiki/chameleon-skin (4.0.0 => 4.2.1): Extracting archive
Generating optimized autoload files
12 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> ComposerVendorHtaccessCreator::onEvent
No security vulnerability advisories found

Edited LocalSettings.php

wfLoadExtension( 'Bootstrap' );
wfLoadSkin( 'chameleon' );

Success...

image

Thanks