Development tips

One thing that you can do in development (and even production for relatively low-volume wikis) is to invalidate caches whenever there are changes to LocalSettings.php

In previous versions of MediaWiki, this was done by default in “LocalSettings.php” using the following code:

$wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) );

and there is the similar boolean variable $wgInvalidateCacheOnLocalSettingsChange

Too many configuration files?

Find out what is set, and where with these one-liners.

# Show a list of what php variables are set in the MezaLocalExtensions.yml
grep --perl-regexp --only-matching "^\s*(\\\$[^\[ ]+)" MezaLocalExtensions.yml | sed -e "s/^[[:space:]]*//" | sort -u 

# Or more generally, all files in the configuration directory
find /opt/conf-meza/public -name '*yml' -o -name '*php' -exec bash -c 'echo -e "\n$0\n"; grep --perl-regexp --only-matching "^\s*(\\\$[^\[ ]+)" '{}' | sed -e "s/^[[:space:]]*//" | sort -u ' '{}' \;

# Just looking for one variable?
grep -r wgCacheEpoch /opt/.deploy-meza/ /opt/conf-meza/ /opt/htdocs/w/LocalSettings.php 2>/dev/null
# Above, we send errors to the bit bucket because you'll always get permission errors searching 
# in /opt/conf-meza/secret/ (and users)
# Or, just --exclude those directories from the grep
grep -r wgCacheEpoch --exclude-dir secret --exclude-dir users /opt/.deploy-meza/ /opt/conf-meza/ /opt/htdocs/w/LocalSettings.php

If you are making repeated deploys, you may want to add a line in /src/roles/mediawiki/tasks/main.yml of force: no for tasks like “Ensure core meza extensions installed” so that you don’t have to wait for each extension repo to be queried and fetched. Note: you can also just skip installing extensions if you aren’t dealing with any extension code. meza deploy monolith --skip-tags extensions,core-extensions,smw-data,search-index