4 A collection of tools meant to make developers' lives easier.
11 - MySQL, MariaDB or PostgreSQL
12 - Git v1.7.7 or greater
14 Most of the tools work on Moodle 1.9 onwards, but some CLI scripts required by MDK might not be available in all versions.
19 The commands are called using that form::
21 mdk <command> <arguments>
23 Get some help on a command using::
27 Also check the `wiki <https://github.com/FMCorz/mdk/wiki>`_.
35 On Debian-based systems, install the following packages::
37 sudo apt-get install python-pip libmysqlclient-dev libpq-dev python-dev
39 Use `pip <http://www.pip-installer.org/en/latest/installing.html>`_::
41 sudo pip install moodle-sdk
50 Using `Homebrew <http://brew.sh/>`_, please refer to this `formula <https://github.com/danpoltawski/homebrew-mdk>`_.
56 Clone the repository::
58 git clone git://github.com/FMCorz/mdk.git moodle-sdk
60 On Debian-based systems, you will need to install the following packages::
62 sudo apt-get install python-pip libmysqlclient-dev libpq-dev python-dev
64 Then from the directory where you cloned the repository::
66 sudo python setup.py develop
73 To activate bash completion::
75 sudo ln -s /path/to/moodle-sdk/extra/bash_completion /etc/bash_completion.d/moodle-sdk
77 To activate goto commands (``gt`` and ``gtd``), add the following to ~/.bashrc::
79 if [ -f /path/to/moodle-sdk/extra/goto_instance ]; then
80 . /path/to/moodle-sdk/extra/goto_instance
81 . /path/to/moodle-sdk/extra/goto_instance.bash_completion
88 If you installed MDK using PIP, run the following command::
90 sudo pip install --upgrade moodle-sdk
92 It is possible that a new version of MDK requires new files, directories, etc... and while we try to make it easy to upgrade, it can happen that some features get broken in your environment. So after each upgrade, consider running the following to get more information::
103 Set up aliases of your Moodle commands.
107 This line defines the alias 'upall', for 'moodle update --all'
111 mdk alias add upall "update --all"
116 Backport a branch to another instance of Moodle.
120 Assuming we are in a Moodle instance, this backports the current branch to the version 2.2 and 2.3
124 mdk backport --version 22 23
126 Backports the branch MDL-12345-23 from the instance stable_23 to the instance stable_22, and pushes the new branch to your remote
130 mdk backport stable_23 --branch MDL-12345-23 --version 22 --push
135 Backup a whole instance so that it can be restored later.
139 Backup the instance named stable_master
143 mdk backup stable_master
151 Restore the second backup of the instance stable_master
155 mdk backup --restore stable_master_02
161 Get the instance ready for acceptance testing (Behat), and run the test feature(s).
167 mdk behat -r --tags=@core_completion
173 Create a new instance of Moodle. It will be named according to your config file.
177 Create a new instance of Moodle 2.1
181 mdk create --version 21
183 Create an instance of Moodle 2.2 using PostgreSQL from the integration remote, and run the installation script.
187 mdk create --version 22 --engine pgsql --integration --install
192 Set your MDK settings from the command line.
196 Show the list of your settings
202 Change the value of the setting ``dirs.storage`` to ``/var/www/repositories``
206 mdk config set dirs.storage /var/www/repositories
212 CSS related functions.
216 Compile the LESS files from Bootstrapbase
226 Perform some checks on the environment to identify possible problems, and attempt to fix them automatically.
232 Create a branch from an issue number on the tracker (MDL-12345) and sets it to track the right branch.
236 In a Moodle 2.2 instance, this will create (and checkout) a branch named MDL-12345-22 which will track upstream/MOODLE_22_STABLE.
247 Display information about the instances on the system.
257 Display the information known about the instance *stable_master*
261 mdk info stable_master
267 Run the command line installation script with all parameters set on an existing instance.
273 mdk install --engine mysqli stable_master
279 JS related functions.
283 Compile the JS modules in Atto
287 mdk js shift --plugin editor_atto
290 Generate the complete YUI API documentation
298 Get the instance ready for PHPUnit tests, and run the test(s).
304 mdk phpunit -u repository/tests/repository_test.php
310 Look for a plugin on moodle.org and downloads it into your instance.
316 mdk plugin download repository_evernote
322 Pre-checks a patch on the CI server.
338 To purge the cache of all the instances
348 Pulls a patch using the information from a tracker issue.
352 Assuming we type that command on a 2.3 instance, pulls the corresponding patch from the issue MDL-12345 in a testing branch
356 mdk pull --testing 12345
362 Shortcut to push a branch to your remote.
366 Push the current branch to your repository
372 Force a push of the branch MDL-12345-22 from the instance stable_22 to your remote
376 mdk push --force --branch MDL-12345-22 stable_22
382 Fetch the latest branches from the upstream remote and rebase your local branches.
386 This will rebase the branches MDL-12345-xx and MDL-56789-xx on the instances stable_22, stable_23 and stable_master. And push them to your remote if successful.
390 mdk rebase --issues 12345 56789 --version 22 23 master --push
391 mdk rebase --issues MDL-12345 MDL-56789 --push stable_22 stable_23 stable_master
397 Remove an instance, deleting every thing including the database.
403 mdk remove stable_master
409 Execute a script on an instance. The scripts are stored in the scripts directory.
413 Set the instance stable_master ready for development
417 mdk run dev stable_master
423 Gets some information about the issue on the tracker.
430 ------------------------------------------------------------------------
431 MDL-34543: New assignment module - Feedback file exists for an
432 assignment but not shown in the Feedback files picker
433 Bug - Critical - https://tracker.moodle.org/browse/MDL-34543
434 Closed (Fixed) 2012-08-17 07:25
435 -------------------------------------------------------[ V: 7 - W: 7 ]--
436 Reporter : Paul Hague (paulhague) on 2012-07-26 08:30
437 Assignee : Eric Merrill (emerrill)
438 Peer reviewer : Damyon Wiese (damyon)
439 Integrator : Dan Poltawski (poltawski)
440 Tester : Tim Barker (timb)
441 ------------------------------------------------------------------------
447 Uninstall an instance: removes config file, drops the database, deletes dataroot content, ...
453 Fetch the latest stables branches from the upstream remote and pull the changes into the local stable branch.
457 This updates the instances stable_22 and stable_23
461 mdk update stable_22 stable_23
463 This updates all your integration instances and runs the upgrade script of Moodle.
467 mdk update --integration --upgrade
473 Run the upgrade script of your instance.
477 The following runs an upgrade on your stable branches
483 This will run an update an each instance before performing the upgrade process
487 mdk upgrade --all --update
492 You can write custom scripts and execute them on your instances using the command ``mdk run``. MDK looks for the scripts in the *scripts* directories and identifies their type by reading their extension. For example, a script called 'helloworld.php' will be executed as a command line script from the root of an installation.
496 # From anywhere on the system
497 $ mdk run helloworld stable_master
499 # Is similar to typing the following command
500 $ cp /path/to/script/helloworld.php /path/to/moodle/instances/stable_master
501 $ cd /path/to/moodle/instances/stable_master
504 Scripts are very handy when it comes to performing more complexed tasks.
509 The following scripts are available with MDK:
511 * ``dev``: Changes a portion of Moodle settings to enable development mode
512 * ``enrol``: Enrols users in any existing course
513 * ``external_functions``: Refreshes the definitions of services and external functions
514 * ``undev``: Reverts the changes made by ``dev``
515 * ``users``: Creates a set of users
516 * ``version``: Fixes downgrade version conflicts
517 * ``webservices``: Does all the set up of webservices for you
522 Licensed under the `GNU GPL License <http://www.gnu.org/copyleft/gpl.html>`_