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 You need the `pip <http://www.pip-installer.org/en/latest/installing.html>`_ to do this::
37 sudo pip install moodle-sdk
42 On Debian-based systems, you will probably need to install the following packages::
44 sudo apt-get install python-pip libmysqlclient-dev libpq-dev python-dev
50 Using `Homebrew <http://brew.sh/>`_, please refer to this `formula <https://github.com/danpoltawski/homebrew-mdk>`_.
62 sudo git clone git://github.com/FMCorz/mdk.git moodle-sdk
64 Install the dependencies
65 ~~~~~~~~~~~~~~~~~~~~~~~~
67 You will need the tool `pip <http://www.pip-installer.org/en/latest/installing.html>`_ to install the packages required by Python.
71 sudo pip install -r /opt/moodle-sdk/requirements.txt
73 On Debian-based systems, you will probably need to install the following packages::
75 sudo apt-get install python-pip libmysqlclient-dev libpq-dev python-dev
77 Make executable and accessible
78 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82 sudo chmod +x /opt/moodle-sdk/mdk.py
83 sudo ln -s /opt/moodle-sdk/mdk.py /usr/local/bin/mdk
88 Assuming that you are using Apache, which is set up to serve the files from /var/www, leave the default values as they are in ``mdk init``, except for your remote and the database passwords.
93 sudo ln -s ~/www /var/www/m
101 To activate bash completion::
103 sudo ln -s /opt/moodle-sdk/extra/bash_completion /etc/bash_completion.d/moodle-sdk
105 To activate goto commands (``gt`` and ``gtd``), add the following to ~/.bashrc::
107 if [ -f /opt/moodle-sdk/extra/goto_instance ]; then
108 . /opt/moodle-sdk/extra/goto_instance
109 . /opt/moodle-sdk/extra/goto_instance.bash_completion
116 If you installed MDK using PIP, run the following command::
118 sudo pip install --upgrade moodle-sdk
120 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::
131 Set up aliases of your Moodle commands.
135 This line defines the alias 'upall', for 'moodle update --all'
139 mdk alias add upall "update --all"
144 Backport a branch to another instance of Moodle.
148 Assuming we are in a Moodle instance, this backports the current branch to the version 2.2 and 2.3
152 mdk backport --version 22 23
154 Backports the branch MDL-12345-23 from the instance stable_23 to the instance stable_22, and pushes the new branch to your remote
158 mdk backport stable_23 --branch MDL-12345-23 --version 22 --push
163 Backup a whole instance so that it can be restored later.
167 Backup the instance named stable_master
171 mdk backup stable_master
179 Restore the second backup of the instance stable_master
183 mdk backup --restore stable_master_02
189 Get the instance ready for acceptance testing (Behat), and run the test feature(s).
195 mdk behat -r --tags=@core_completion
201 Create a new instance of Moodle. It will be named according to your config file.
205 Create a new instance of Moodle 2.1
209 mdk create --version 21
211 Create an instance of Moodle 2.2 using PostgreSQL from the integration remote, and run the installation script.
215 mdk create --version 22 --engine pgsql --integration --install
220 Set your MDK settings from the command line.
224 Show the list of your settings
230 Change the value of the setting ``dirs.storage`` to ``/var/www/repositories``
234 mdk config set dirs.storage /var/www/repositories
240 CSS related functions.
244 Compile the LESS files from Bootstrapbase
254 Perform some checks on the environment to identify possible problems, and attempt to fix them automatically.
260 Create a branch from an issue number on the tracker (MDL-12345) and sets it to track the right branch.
264 In a Moodle 2.2 instance, this will create (and checkout) a branch named MDL-12345-22 which will track upstream/MOODLE_22_STABLE.
275 Display information about the instances on the system.
285 Display the information known about the instance *stable_master*
289 mdk info stable_master
295 Run the command line installation script with all parameters set on an existing instance.
301 mdk install --engine mysqli stable_master
307 JS related functions.
311 Compile the JS modules in Atto
315 mdk js shift --plugin editor_atto
318 Generate the complete YUI API documentation
326 Get the instance ready for PHPUnit tests, and run the test(s).
332 mdk phpunit -u repository/tests/repository_test.php
338 Look for a plugin on moodle.org and downloads it into your instance.
344 mdk plugin download repository_evernote
354 To purge the cache of all the instances
364 Pulls a patch using the information from a tracker issue.
368 Assuming we type that command on a 2.3 instance, pulls the corresponding patch from the issue MDL-12345 in a testing branch
372 mdk pull --testing 12345
378 Shortcut to push a branch to your remote.
382 Push the current branch to your repository
388 Force a push of the branch MDL-12345-22 from the instance stable_22 to your remote
392 mdk push --force --branch MDL-12345-22 stable_22
398 Fetch the latest branches from the upstream remote and rebase your local branches.
402 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.
406 mdk rebase --issues 12345 56789 --version 22 23 master --push
407 mdk rebase --issues MDL-12345 MDL-56789 --push stable_22 stable_23 stable_master
413 Remove an instance, deleting every thing including the database.
419 mdk remove stable_master
425 Execute a script on an instance. The scripts are stored in the scripts directory.
429 Set the instance stable_master ready for development
433 mdk run dev stable_master
439 Gets some information about the issue on the tracker.
446 ------------------------------------------------------------------------
447 MDL-34543: New assignment module - Feedback file exists for an
448 assignment but not shown in the Feedback files picker
449 Bug - Critical - https://tracker.moodle.org/browse/MDL-34543
450 Closed (Fixed) 2012-08-17 07:25
451 -------------------------------------------------------[ V: 7 - W: 7 ]--
452 Reporter : Paul Hague (paulhague) on 2012-07-26 08:30
453 Assignee : Eric Merrill (emerrill)
454 Peer reviewer : Damyon Wiese (damyon)
455 Integrator : Dan Poltawski (poltawski)
456 Tester : Tim Barker (timb)
457 ------------------------------------------------------------------------
463 Uninstall an instance: removes config file, drops the database, deletes dataroot content, ...
469 Fetch the latest stables branches from the upstream remote and pull the changes into the local stable branch.
473 This updates the instances stable_22 and stable_23
477 mdk update stable_22 stable_23
479 This updates all your integration instances and runs the upgrade script of Moodle.
483 mdk update --integration --upgrade
489 Run the upgrade script of your instance.
493 The following runs an upgrade on your stable branches
499 This will run an update an each instance before performing the upgrade process
503 mdk upgrade --all --update
508 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.
512 # From anywhere on the system
513 $ mdk run helloworld stable_master
515 # Is similar to typing the following command
516 $ cp /path/to/script/helloworld.php /path/to/moodle/instances/stable_master
517 $ cd /path/to/moodle/instances/stable_master
520 Scripts are very handy when it comes to performing more complexed tasks.
525 The following scripts are available with MDK:
527 * ``dev``: Changes a portion of Moodle settings to enable development mode
528 * ``enrol``: Enrols users in any existing course
529 * ``undev``: Reverts the changes made by ``dev``
530 * ``users``: Creates a set of users
531 * ``webservices``: Does all the set up of webservices for you
536 Licensed under the `GNU GPL License <http://www.gnu.org/copyleft/gpl.html>`_