NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1443 most downloaded on Packagist
Helps running Moodle plugins analysis checks and tests under various CI environments.
Last release 2 months ago
07 Aug 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
89 releases · first in 2015
ACTION SUGGESTED: bump workflows to postgres 17, which is a requirement for Moodle 5.3
.moodle-plugin-ci.yml config found in subdirectories (e.g. subplugins), merging their notPaths/notNames filters with the parent config.Take a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Updated project dependencies to current moodle-cs v3.7.0 and moodle-local_ci v1.1.4 releases. The project now targets the current Moodle version.
One column per quarter.
templates/mobileapp/ folder.--repo params support file:// and ./moodle making it similar to git clone behaviour.Take a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Updated project dependencies to current moodle-cs v3.6.0 and moodle-local_ci v1.1.3 releases.
Take a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Using Travis CI has been deprecated in 4.5.8 and will be removed in 5.0.0. This includes removing configuration template and relevant documentation.
Take a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
New --scss-deprecations option added to the behat command
--scss-deprecations option added to the behat commandTake a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Removed the PHPUnit --verbose option to comply with Moodle 5.0
Take a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Stylelint less component task ( grunt stylelint:less ) has been deprecated in Moodle 3.7.
getRequiredFunctionCalls in plugin type specific Requirements class can be used to validate that file contains function call.FileTokens::notFoundHint can be used to give some context for validation error to improve developer experience.grunt stylelint:less) has been deprecated inTake a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Fixed nvm loading issue caused by upstream regression.
Take a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Support for version 4.4 of the app, that uses new defaults and Chrome (Selenium 4) version.
Take a look at the CHANGELOG for details about other releases.
Please follow the 4.0 Upgrade guide when upgrading from 3.x.
Updated project dependencies to current moodle-cs v3.4.9 release.
Updated project dependencies to current moodle-cs v3.4.8 release.
The use of phpdbg to calculate PHPUnit’s code-coverage has been deprecated in this moodle-plugin-ci release (4.5.0) and will be removed in 5.0.0. This…
Updated project dependencies to current moodle-cs v3.4.7 and moodle-local_ci v1.0.30 releases.
Internal, various improvements to self testing.
The use of phpdbg to calculate PHPUnit’s code-coverage has been deprecated in this moodle-plugin-ci release (4.5.0) and will be removed in 5.0.0. This includes both the implicit (default) option when no alternative ( pcov or xdebug ) is available and the explicit --coverage-phpdbg option.
ACTION SUGGESTED: In order to avoid deprecation warnings or annotations, proceed to ensure that either pcov (Moodle 3.10 and up) or xdebug are available and they will be used automatically. Note that any use of phpdbg will throw an error in the next major release (5.0.0).
Solved a problem with the validation of dataformat plugin lang strings.
Fixed a problem with the phpcs command returning with success when some (configuration, installation, …) problem was causing it not to be executed at all.
Additional release for error in release process
Updated project dependencies to current moodle-cs v3.4.6 release.
Updated project dependencies to current moodle-cs v3.4.5 release.
The documentation about the phpcpd command (deprecated and to be removed in 5.0.0) has been deleted from all the templates and docs.
Added GHA step to store Behat fail-dumps as workflow artefacts, so it can be inspected . Documentation has been updated as well to reflect the purpose of the step.
Added support for the --license-regex option to the phpcs command. When specified, all the PHPDoc license tags ( @license ) are inspected to ensure that they contain some text matching the regular expression (a license type: /GNU GPL v3 or later/ , … or any other valid alternative).
Updated project dependencies to current moodle-cs v3.4.4 , moodle-local_moodlecheck v1.3.2 and moodle-local_ci v1.0.29 releases.
Updated self CI dependencies to current PHP and Moodle versions.
For pull requests, set the Assignee automatically (to the author of the PR).
New --no-plugin-node option added to the install command, to be able to skip the installation of any NodeJS stuff that the plugin may include. The pre
Updated all uses of actions/checkout from v3 (using node 16) to v4 (using node 20), because actions using node 16 are deprecated and will stop working…
New --selenium option or MOODLE_BEHAT_SELENIUM_IMAGE env variable to the behat command, to be able to specify the Selenium Docker image to use (defaults apply if not specified).
New MOODLE_BEHAT_CHROME_CAPABILITIES and MOODLE_BEHAT_FIREFOX_CAPABILITIES env variables to configure additional browser capabilities (they will be needed - internally - soon, to allow the command to perform some special behat runs).
Extend own CI tests to cover:
PHP 8.3 (all tests).
selfupdate PHAR command (unit and integration tests).
Updated all uses of actions/checkout from v3 (using node 16) to v4 (using node 20), because actions using node 16 are deprecated and will stop working in the future.
ACTION SUGGESTED: In order to avoid the node 16 deprecation warnings, update your workflows to use actions/checkout@v4 . Note: the same may apply to other actions being used in your workflows (check your latest runs).
Updated project dependencies to current moodle-cs .
The phpcpd command (that uses the PHP Copy/Paste Detector , now abandoned) has been deprecated in this moodle-plugin-ci release (4.4.0) and will be removed in 5.0.0. No replacement is planned.
ACTION SUGGESTED: In order to avoid deprecation warnings or annotations, proceed to remove this command from your workflows. Note that any use will throw an error in the next major release (5.0.0).
The master branch of Moodle upstream repositories has been moved to main and will stop working soon (see MDLSITE-7418 for details). GitHub workflows will start emitting warnings/annotations when uses of the master branch are detected.
ACTION SUGGESTED: In order to avoid deprecation warnings or annotations, proceed to replace master by main in your workflows. Note that any use of the former (to be removed) will throw an error in the future.
Modified internal CI scripts towards better Codecov future support.
Modified internal CI scripts towards better Codecov future support.
Updated project dependencies to current moodle-cs .
Added support for the --todo-comment-regex option to the phpcs command. When specified, all the todo comments ( TODO and @todo ) are inspected to ensu
Added Moodle App Behat testing support.
Added Moodle App Behat testing support.
Added support for the --exclude option to the phpcs command.
Added support for the --tags and --name options to the behat command.
Added support for the --tags and --name options to the behat command.
Added support for the --configure , --testsuite and --filter options to the phpunit command.
The default branch of this repository has been renamed from master to main . You can visit this issue (#258) for more information about the potential actions required (if you use this, or clones/forks of this, repository).
ACTION SUGGESTED: If you are using GitHub Actions, it’s recomended to use !cancelled() instead of always() for moodle-plugin-ci tests. Adding a final step that always returns failure when the workflow is cancelled will ensure that cancelled workflows are not marked as successful. For a working example, please reference the updated gha.dist.yml file.
ACTION SUGGESTED: For some (unknown) reason, Travis environments with PHP 8.2 have started to fail with error:
php: error while loading shared libraries: libonig.so.5
To avoid that problem, it’s recommended to to add the libonig5 package to the travis.yml file. For a working example, please reference the updated .travis.dist.yml file.
Updated project dependencies to current moodle-cs version.
Updated project dependencies to current moodle-local_ci version.
Updated project dependencies to current moodle-cs and moodle-local_ci versions.
Updated project dependencies to current moodle-cs version.
Covered the PHAR package with some new integration tests.
Reduced the number of own CI tests (internal change) executed with Travis.
Updated project dependencies to current moodle-cs and moodle-local_ci versions.
Solved various problems related with the execution of checks from PHAR:
Fixed the .env support.
Fixed the mustache command execution.
Fixed the phpcs and phpcbf commands execution.
Fixed the phpdoc command to use the bundled coreapis.txt file.
Updated project dependencies to current moodle-cs , moodle-local_moodlecheck and moodle-local_ci versions. Also, to various internal / development too
Modified moodle-local_ci composer dependencies and manage them normally, removing some ancient bits that have stopped working with Composer 2.6.0 and
Modified moodle-local_ci composer dependencies and manage them normally, removing some ancient bits that have stopped working with Composer 2.6.0 and up .
Updated project dependencies to current moodle-local_ci version.
Add support for the following optional env variables, that will be used on installation, getting precedence over the corresponding existing option:
Add support for the following optional env variables, that will be used on installation, getting precedence over the corresponding existing option:
DB_USER : To specify the database username (alternative to --db-user )
DB_PASS : To specify the database password (alternative to --db-pass )
DB_NAME : To specify the database name (alternative to --db-name )
DB_HOST : To specify the database host (alternative to --db-host )
DB_PORT : To specify the database port (alternative to --db-port )
Note that these new env variables behave exactly the same than the existing (and often used) DB one, that is also a priority alternative to --db-type on install.
Add the --testdox option to the phpunit command.
Add the --testdox option to the phpunit command.
Add the --max-warnings option to the phpdoc command, so it behaves the same than the phpcs command. Note that this modifies current behaviour (see next point) and plugins with only warnings won’t be failing any more.
ACTION SUGGESTED: In order to keep the previous behaviour, it’s recommended to use the new --max-warnings 0 (or any other number) option to specify the warnings threshold.
Upgrade guide: Upgrading from 3.x to 4.0
Upgrade guide: Upgrading from 3.x to 4.0
Support for PHP 8.1 and up.
Lots of internals upgraded:
Symfony 5.4 .
PHPUnit 9.x .
Code coverage reporting.
Psalm level 2 compliance.
PSR-12 compliance.
Small changes to documentation towards prioritise GitHub Actions over Travis CI.
In addition to the internal and doc changes above, this initial 4.x release has 100% feature-parity with current 3.x series, setting the base for further improvements and new features. No changes are expected in general, other than in order to meet the new requirements.
Support for PHP < 7.4 (the new minimum version).
Support for Moodle < 3.8.3, that was the first release officially supporting PHP 7.4 .
Fixed nvm loading issue caused by upstream regression.
Take a look at the CHANGELOG for details about other releases.
Please follow 3.0 Upgrade guide when upgrading from 2.x.
Nothing published for this version
Small changes to documentation towards prioritise GitHub Actions over Travis CI.
Plugin bundled phpunit.xml files are not overwritten or modified ever.
Plugin bundled phpunit.xml files are not overwritten or modified ever.
For Moodle 3.9 and up, when the plugin is missing any tests/coverage.php file, core defaults ( lib.php , locallib.php , classes/ , …) will be applied. Previously, all the *.php files were applied by default (note that older Moodle versions will continue getting them).
Various improvements to the Travis & GHA dist files and documentation.
Various improvements to the Travis & GHA dist files and documentation.
Updated project dependencies to current moodle-cs version.
Improved release process: Now every version changelog (this file) is automatically added to the release notes.
Improved release process: Now every version changelog (this file) is automatically added to the release notes.
New --test-version option added to the phpcs ( codechecker ) command in order to specify the PHP version (x.y) or range of PHP versions (x.y-w.z) to be checked by the PHPCompatibility standard (part of the moodle standard).
Modified the Travis templates and docs to point that, since MDL-75012 (core update to Node 18), Ubuntu Focal 20.04 is the minimum required by runs.
Modified the Travis templates and docs to point that, since MDL-75012 (core update to Node 18), Ubuntu Focal 20.04 is the minimum required by runs.
ACTION REQUIRED: Review any Travis configuration for 39_STABLE and up. Now they require Ubuntu 20.04 (focal) to be specified.
The codechecker command has been renamed to phpcs , to better match other command names. The old name remains as alias, so no change is required.
Updated project dependencies to current moodle-local_moodlecheck version.
Updated project dependencies to current moodle-local_moodlecheck version.
Fix self-tests to pass with new introduced checks and Node 18.
Updated project dependencies to current moodle-local_ci version.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
Updated to php-coveralls/php-coveralls v2 for uploading coverage results to Coveralls with the coveralls-upload command.
ACTION REQUIRED: Review any use of the coveralls-upload command in GHA and ensure that COVERALLS_REPO_TOKEN is set in the environment. See Coveralls integration for more information.
Updated to php-compatibility dev version. This was needed because the last release is from 2019 and, until a new release is available, it was the only
Updated gha.dist.yml and .travis.dist.yml (and documentation) to fulfil Moodle 4.2 new requirements .
Updated gha.dist.yml and .travis.dist.yml (and documentation) to fulfil Moodle 4.2 new requirements .
ACTION REQUIRED: Review existing integrations running tests against main (4.2dev). There are a few Moodle 4.2 new requirements:
PHP 8.0 is required (instead of 7.4).
PostgreSQL 13 is required (instead of 12).
MariaDB 10.6 is required (instead of 10.4).
MySQL 8 is required (instead of 5.7).
Updated all uses of actions/checkout from v2 (using node 12) to v3 (using node 16), because actions using node 12 are deprecated and will stop working…
Internal improvements to the release process.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
Updated all uses of actions/checkout from v2 (using node 12) to v3 (using node 16), because actions using node 12 are deprecated and will stop working in the future.
ACTION SUGGESTED: In order to avoid the node 12 deprecation warnings, update your workflows to use actions/checkout@v3 .
…problems in the future because they are being deprecated.
Updated all GHA scripts, templates and guides to use Ubuntu 22.04 (jammy). This change is not required yet, but integrations using old versions (Ubuntu 16.04, 18.04…) may face problems in the future because they are being deprecated.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
moodle-plugin-ci install now provides an option --db-port to define a custom database port.
Updated gha.dist.yml and .travis.dist.yml (and documentation) to fulfil Moodle 4.1 new requirements .
ACTION REQUIRED: Review existing integrations running tests against main (4.1dev). There are a few Moodle 4.1 new requirements:
PHP 7.4 is required (instead of 7.3).
PostgreSQL 12 is required (instead of 10). Pay special attention to the changes needed for this and Travis!
MariaDB 10.4 is required (instead of 10.2.29).
Oracle 19 is required (instead of 11.2).
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
PHPUnit code coverage will now automatically fallback between pcov => xdebug => phpdbg , using the “best” one available in the system. Still, if neede
PHPUnit code coverage will now automatically fallback between pcov => xdebug => phpdbg , using the “best” one available in the system. Still, if needed to, any of them can be forced, given all their requirements are fulfilled, using the following new options of the ‘phpunit’ command: --coverage-pcov , --coverage-xdebug or --coverage-phpdbg .
ACTION SUGGESTED: Ensure that the pcov or xdebug extensions are installed in your environment to get ‘moodle-plugin-ci’ using them automatically.
It is possible to specify more test execution options to the ‘phpunit’ command, such as --fail-on-incomplete , --fail-on-risky and --fail-on-skipped a
ACTION SUGGESTED: Now, it’s safe to ‘unpin’ the MariaDB version in all integrations. With MariaDB 10.6.7 and 10.7.3 already released, the existing pro
ACTION SUGGESTED: Now, it’s safe to ‘unpin’ the MariaDB version in all integrations. With MariaDB 10.6.7 and 10.7.3 already released, the existing problems are gone, so it’s possible to move away from the older 10.5 version. To achieve that, just look for any use of image: mariadb:10.5 and change it to image: mariadb:10 . For more information, see MDL-72131 .
Updated version of moodle-local_codechecker to v3.1.0. For list of changes see changelog , you should expect numerous @covers annotation warnings in particular.
Use utf8mb4 for MySQL and MariaDB setup.
ACTION SUGGESTED: If you are using GitHub Actions and running tests on MySQL/MariaDB, set env variables MYSQL_CHARACTER_SET_SERVER and MYSQL_COLLATION_SERVER for mysql/mariadb service per gha.dist.yml file.
Updated version of moodle-local_codechecker to v3.0.6.
Updated version of moodle-local_codechecker to v3.0.5.
Support for subplugins in the extra-plugins directory for install.
Support for subplugins in the extra-plugins directory for install.
Support for coverage.php files added. Previous coverage defaults only will be applied when that file is not present in the plugin.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
Updated version of moodle-local_codechecker to v3.0.4.
Both Chrome and Firefox are back to use latest Selenium 3 versions, previously pinned because of some interim problems with them.
GitHub no longer supports the git:// protocol . Please change any use to https:// instead.
Internal, various improvements to self testing.
Temporary pin Selenium standalone-chrome image to 3.141.59-20210713
New tool-agnostic CI_BUILD_DIR env. variable that can be used instead of the old TRAVIS_BUILD_DIR one. Note that support for the later will be removed
Updated gha.dist.yml and .travis.dist.yml to use PostgreSQL 10 (Moodle 4.0 new requirement).
ACTION REQUIRED: Existing integrations running tests with PostgreSQL now need to use version 10 or newer.
ACTION REQUIRED: Existing integrations running tests with MariaDB must avoid using the 10.6 version and use 10.5 instead. It comes with some changes making it incompatible with Moodle default installation. To achieve that, just look for any use of image: mariadb:10 and change it to image: mariadb:10.5 . This is being tracked @ MDL-72131 and, once fixed, it will be possible to go back to the original image.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
Updated version of moodle-local_codechecker to v3.0.2.
Improved documentation and examples about how to ignore paths and files.
ACTION REQUIRED: Small modifications are required to both Travis and GHA integrations, only if adding PHP 8 jobs. These changes include 1) Setting up
Support for PHP 8.0 jobs.
ACTION REQUIRED: Small modifications are required to both Travis and GHA integrations, only if adding PHP 8 jobs. These changes include 1) Setting up the max_input_vars=5000 PHP configuration setting, for all runs, and 2) Enabling the xmlrpc-beta extension if the plugin requires xmlrpc services, only for PHP 8 runs. See gha.dist.yml and .travis.dist.yml for more information.
Updated various internal dependencies and tools.
Moved moodle-local_moodlecheck and moodle-local_ci dependencies to use tagged references instead of commit ones.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
Updated version of moodle-local_codechecker to v3.0.1.
Updated project dependencies to current moodle-local_moodlecheck version.
Updated project dependencies to current moodle-local_moodlecheck version.
Switched to Composer v2.
moodle-plugin-ci grunt should also be using npx grunt internally
nvm availability check to make it work correctly in GHA
nvm availability check to make it work correctly in GHA
ACTION REQUIRED: If you are using GitHub Actions, add NVM_DIR definition in “Initialise moodle-plugin-ci” step. Without it nvm can’t be used for node version switching, see the step definition at gha.dist.yml and add missing NVM_DIR line your plugin’s GHA workflow file.
Your coding agent can read these notes before it upgrades. Set up the MCP server →