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
moodle-plugin-ci grunt now only runs against the yui/src directory when configuring the YUI task. This resolves an issue where an “Unable to find loca
moodle-plugin-ci phpunit when coverage report is included, phpdbg is called with ignore memory limits param to avoid memory exhausted errors.
Updated project dependencies to current moodle-local_moodlecheck and moodle-local_ci versions.
Updated version of moodle-local_codechecker to v3.0.0.
Install grunt locally and use npx grunt to run it instead of installing it globally.
Detect existence of legacy php-webdriver, and use a different Firefox image when it is in use.
Add manual and example on using GitHub Actions as CI tool.
Updated version of moodle-local_codechecker to v2.9.8.
Updated version of moodle-local_codechecker to v2.9.8.
Updated project dependencies ( moodle-local_ci ).
One column per quarter.
Skip HTML validation in mustache templates adding a .mustachelintignore standard ignores file to the plugin. Useful for templates containing specific
Updated .travis.dist.yml to use Postgresql 9.6 (Moodle 3.10 new requirement).
Updated .travis.dist.yml to use Postgresql 9.6 (Moodle 3.10 new requirement).
Updated composer.json to use the latest version of local_moodlecheck plugin.
Updated project dependencies
ACTION REQUIRED: project organization renamed to moodlehq. You must update your .travis.yml to use moodlehq/moodle-plugin-ci
ACTION REQUIRED: project organization renamed to moodlehq. You must update your .travis.yml to use moodlehq/moodle-plugin-ci
ACTION REQUIRED: If you initiated Selenium server in docker container as part of your test scenario (e.g. separate step in install stage similar to one outlined in workaround blackboard-open-source/issue#110 ), this is no longer required, you can remove this step.
ACTION REQUIRED: You may safely remove nvm install <version> and nvm use from .travis.yml, this is now a part of installation routine.
Updated .travis.dist.yml with a new services section to ensure databases start.
Updated .travis.dist.yml to remove openjdk-8-jre-headless and updated moodlehq/moodle-local_ci to fix Mustache linting. See moodle-local_ci/pull#198 .
moodle-plugin-ci behat is using Selenium docker container for built-in Selenium server.
Updated version of moodlehq/moodle-local_codechecker to v2.9.7
Updated .travis.dist.yml to build Moodle 3.9
moodle-plugin-ci install installs Node.js (npm) using the version specified in .nvmrc file or lts/carbon if .nvmrc is missing (pre Moodle 3.5). It is also possible to override default version by providing –node-version parameter or defining NODE_VERSION env variable. The value of this parameter should be compatible with nvm install command, e.g. v8.9 , 8.9.0 , lts/erbium . See #7
New help document: CLI commands and options
Upgrade guide: Upgrading from 2.x to 3.0
Updated .travis.dist.yml to install openjdk-8-jre-headless instead of oracle-java8-installer and oracle-java8-set-default packages. See #83 for detail
Updated .travis.dist.yml to install openjdk-8-jre-headless instead of oracle-java8-installer and oracle-java8-set-default packages. See #83 for details.
Updated project dependencies: Moodle Code Checker v2.9.3 (added PHP 7.3 support)
Add moodle-plugin-ci phpdoc check which executes moodlehq/moodle-local_moodlecheck on the plugin.
moodle-plugin-ci behat now provides an option --suite to define the theme to use while running the test.
ACTION REQUIRED: project organization renamed to blackboard-open-source . You must update your .travis.yml to use blackboard-open-source/moodle-plugin
ACTION REQUIRED: project organization renamed to blackboard-open-source . You must update your .travis.yml to use blackboard-open-source/moodle-plugin-ci
Updated .travis.dist.yml to build Moodle 3.5: removed PHP 5.6 and upgrade to Postgresql 9.4.
Updated project dependencies.
Recommending sudo: true when using Behat. See #70 for details.
Recommending sudo: true when using Behat. See #70 for details.
Updated project dependencies. Most notably, Moodle Code Checker v2.7.1.
ACTION REQUIRED: changed the nvm install node to nvm install 8.9 and nvm use 8.9 in the .travis.dist.yml and you must update your .travis.yml file to
moodle-plugin-ci validate now properly validates all table name prefixes in the plugin’s db/install.xml file. Before, if any table name was properly p
ACTION REQUIRED: added firefox: "47.0.1" to .travis.dist.yml and you must add it to your .travis.yml file to get Behat running again. This is because
ACTION REQUIRED: added firefox: "47.0.1" to .travis.dist.yml and you must add it to your .travis.yml file to get Behat running again. This is because Travis CI changed their default environment from Precise to Trusy. On Trusty, the default Firefox version is 55, which is not compatible with Selenium.
Fixed moodle-plugin-ci mustache command when _JAVA_OPTIONS environment variable is set. This is now set by default in Trusty builds.
PHPUnit code coverage whitelist for Moodle 3.3 or later.
BREAKING: requires PHP 5.6 or later.
BREAKING: requires PHP 5.6 or later.
BREAKING: requires Moodle 3.2 or later.
moodle-plugin-ci codechecker command no longer processes Javascript files. Use the new grunt command instead.
moodle-plugin-ci codechecker now runs the PHP Compatibility coding standard. This will now check for PHP compatibility issues for the currently running PHP version. This makes it important to run this command on your lowest and highest supported PHP version. EG: on PHP 5.6 and 7.1.
moodle-plugin-ci validate command now validates tags in Behat feature files. EG: mod_forum should have @mod and @mod_forum tags in each feature file.
The .travis.dist.yml now installs Version 2 of this tool.
Updated Moodle coding standard to v2.7.0.
BREAKING: removed moodle-plugin-ci csslint command. Replaced with grunt command.
BREAKING: removed moodle-plugin-ci jshint command. Replaced with grunt command.
BREAKING: removed moodle-plugin-ci shifter command. Replaced with grunt command.
The Composer self update step from .travis.dist.yml .
Defining ignore files per command, see help document for details.
moodle-plugin-ci mustache command which lints your Mustache template files.
moodle-plugin-ci grunt command which runs Grunt tasks on the plugin. See help document for more details about the command.
moodle-plugin-ci savepoints command which checks your plugin’s upgrade steps.
--dump option to behat command to print Behat HTML failure captures.
--auto-rerun option to behat automatically rerun failures, defaults to 2 reruns.
The .travis.dist.yml now has steps to install Java 8.
The .travis.dist.yml now has steps to install latest version of NodeJS and NPM.
The .travis.dist.yml now has a step to cache the NPM cache.
The .travis.dist.yml now has a step to install PostgreSQL 9.3.
### Fixed - PHP 5.6 issue with Behat.
moodle-plugin-ci install when installing multiple plugins that have circular dependencies.
moodle-plugin-ci install when installing multiple plugins that have circular dependencies.
Stalled Travis jobs when Behat is required.
Upgraded PHP_CodeSniffer to 2.6.2 .
Upgraded PHP_CodeSniffer to 2.6.2 .
Updated Moodle coding standard with latest changes from v2.5.4 .
moodle-plugin-ci validate command no longer requires blockname:addinstance and blockname:myaddinstance for blocks because depending on allowed formats
Regression from 1.5.3 with ignore paths and names.
When installing plugins, now install in order based on $plugin->dependencies definitions.
When installing plugins, now install in order based on $plugin->dependencies definitions.
Ignore amd/build directory.
Inspection bugs and a bug introduced in 1.5.1.
Upgraded PHP_CodeSniffer to 2.6.0.
moodle-plugin-ci add-plugin command. Allows for installing plugin dependencies.
moodle-plugin-ci add-plugin command. Allows for installing plugin dependencies.
doc/AddExtraPlugins.md documentation on how to use the add-plugin command.
doc/CodeCoverage.md documentation on how to generate code coverage for a plugin.
--coverage-text option to phpunit command to print text code coverage.
--coverage-clover option to phpunit command to create a code coverage XML file.
moodle-plugin-ci coveralls-upload command to upload code coverage to Coveralls.
Behat command to be compatible with Behat 3 which is used in Moodle 3.1.
The .travis.dist.yml file now uses the Composer --prefer-dist option.
PHPUnit installer now builds component configs.
When the phpunit command is run, it will prefer the component’s phpunit.xml configuration.
Updated Moodle coding standard with latest changes.
Updated Moodle coding standard with latest changes. This fully supports PHP_CodeSniffer 2+ so some new sniff failures might appear as they were silent
Updated Moodle coding standard with latest changes. This fully supports PHP_CodeSniffer 2+ so some new sniff failures might appear as they were silently hidden before. Also includes fixes and improvements.
Upgraded PHP_CodeSniffer to 2.5.1 to be in alignment with code checker.
Downgraded PHP_CodeSniffer to 2.5.0 from 2.5.1 to fix PHP Notices with the Moodle sniffs.
PhantomJS support. No way to actually use it and Selenium can handle everything.
The .travis.dist.yml now has the new moodle-plugin-ci validate command.
The .travis.dist.yml file not longer allows PHP7 to fail.
The .travis.dist.yml file now disables XDebug to improve build times.
The .travis.dist.yml file now defaults to Moodle 3 stable which supports PHP7. Older versions of Moodle do not support PHP7, so take this into account when you update your YAML file.
Project dependencies have been updated.
Testing a plugin against PHP7 help document.
moodle-plugin-ci validate command. Does some light validation of plugin file structure and code. Validation can be plugin specific.
moodle-plugin-ci parallel command. Runs all the commands at once. This command is not supposed to be used on Travis CI, but rather locally, to save programmer fingers.
Pass host when connecting with MySQL and Postgres.
Pass host when connecting with MySQL and Postgres.
Add quotes around database name for MySQL and Postgres.
MySQL database collation from UTF8_bin to utf8_general_ci.
Project dependencies have been updated for PHP7 support.
moodle-plugin-ci phpcbf command. Re-formats code according to Moodle coding standards. This command is not supposed to be used on Travis CI, but rathe
moodle-plugin-ci install command. This does all of the setup for testing.
moodle-plugin-ci install command. This does all of the setup for testing.
moodle-plugin-ci add-config command. Adds extra configs to Moodle’s config file.
moodle-plugin-ci behat command. Runs plugin Behat features.
moodle-plugin-ci phpunit command. Runs plugin PHPUnit tests.
moodle-plugin-ci phplint command. Lints PHP files in the plugin.
moodle-plugin-ci codechecker command. Run Moodle Code Checker on the plugin.
moodle-plugin-ci phpcpd command. Run PHP Copy/Paste Detector on the plugin.
moodle-plugin-ci phpmd command. Run PHP Mess Detector on the plugin.
moodle-plugin-ci jshint command. Run JSHint on the Javascript files in the plugin.
moodle-plugin-ci shifter command. Run YUI Shifter on plugin YUI modules.
moodle-plugin-ci csslint command. Lints the CSS files in the plugin.
moodle-plugin-ci install command. This does all of the setup for testing.moodle-plugin-ci add-config command. Adds extra configs to Moodle's config file.moodle-plugin-ci behat command. Runs plugin Behat features.moodle-plugin-ci phpunit command. Runs plugin PHPUnit tests.moodle-plugin-ci phplint command. Lints PHP files in the plugin.moodle-plugin-ci codechecker command. Run Moodle Code Checker on the plugin.moodle-plugin-ci phpcpd command. Run PHP Copy/Paste Detector on the plugin.moodle-plugin-ci phpmd command. Run PHP Mess Detector on the plugin.moodle-plugin-ci jshint command. Run JSHint on the Javascript files in the plugin.moodle-plugin-ci shifter command. Run YUI Shifter on plugin YUI modules.moodle-plugin-ci csslint command. Lints the CSS files in the plugin.Your coding agent can read these notes before it upgrades. Set up the MCP server →