Metadata-Version: 1.1
Name: moodle-sdk
Version: 1.4.1
Summary: Moodle Development Kit
Home-page: https://github.com/FMCorz/mdk
Author: Frédéric Massart
Author-email: fred@fmcorz.net
License: MIT
Description: Moodle Development Kit
        ======================
        
        A collection of tools meant to make developers' lives easier.
        
        Requirements
        ============
        
        - Linux or Mac OS
        - Python 2.7
        - MySQL, MariaDB or PostgreSQL
        - Git v1.7.7 or greater
        
        Most of the tools work on Moodle 1.9 onwards, but some CLI scripts required by MDK might not be available in all versions.
        
        Usage
        =====
        
        The commands are called using that form::
        
            mdk <command> <arguments>
        
        Get some help on a command using::
        
            mdk <command> --help
        
        Also check the `wiki <https://github.com/FMCorz/mdk/wiki>`_.
        
        Installation
        ============
        
        Python package
        --------------
        
        You need the `pip <http://www.pip-installer.org/en/latest/installing.html>`_ to do this::
        
            sudo pip install moodle-sdk
            mdk init
        
        That's it!
        
        On Debian-based systems, you will probably need to install the following packages::
        
            sudo apt-get install python-pip libmysqlclient-dev libpq-dev python-dev
        
        
        Homebrew
        --------
        
        Using `Homebrew <http://brew.sh/>`_, please refer to this `formula <https://github.com/danpoltawski/homebrew-mdk>`_.
        
        
        Git
        ---
        
        Clone the repository
        ~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            cd /opt
            sudo git clone git://github.com/FMCorz/mdk.git moodle-sdk
        
        Install the dependencies
        ~~~~~~~~~~~~~~~~~~~~~~~~
        
        You will need the tool `pip <http://www.pip-installer.org/en/latest/installing.html>`_ to install the packages required by Python.
        
        ::
        
            sudo pip install -r /opt/moodle-sdk/requirements.txt
        
        On Debian-based systems, you will probably need to install the following packages::
        
            sudo apt-get install python-pip libmysqlclient-dev libpq-dev python-dev
        
        Make executable and accessible
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
            sudo chmod +x /opt/moodle-sdk/mdk.py
            sudo ln -s /opt/moodle-sdk/mdk.py /usr/local/bin/mdk
        
        Set up the basics
        ~~~~~~~~~~~~~~~~~
        
        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.
        
        ::
        
            mkdir ~/www
            sudo ln -s ~/www /var/www/m
            mdk init
        
        You're all set.
        
        Optional
        ~~~~~~~~
        
        To activate bash completion::
        
            sudo ln -s /opt/moodle-sdk/extra/bash_completion /etc/bash_completion.d/moodle-sdk
        
        To activate goto commands (``gt`` and ``gtd``), add the following to ~/.bashrc::
        
            if [ -f /opt/moodle-sdk/extra/goto_instance ]; then
                . /opt/moodle-sdk/extra/goto_instance
                . /opt/moodle-sdk/extra/goto_instance.bash_completion
            fi
        
        
        Upgrading
        =========
        
        If you installed MDK using PIP, run the following command::
        
            sudo pip install --upgrade moodle-sdk
        
        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::
        
            mdk doctor --all
        
        
        Command list
        ============
        
        alias
        -----
        
        Set up aliases of your Moodle commands.
        
        **Example**
        
        This line defines the alias 'upall', for 'moodle update --all'
        
        ::
        
            mdk alias add upall "update --all"
        
        backport
        --------
        
        Backport a branch to another instance of Moodle.
        
        **Examples**
        
        Assuming we are in a Moodle instance, this backports the current branch to the version 2.2 and 2.3
        
        ::
        
            mdk backport --version 22 23
        
        Backports the branch MDL-12345-23 from the instance stable_23 to the instance stable_22, and pushes the new branch to your remote
        
        ::
        
            mdk backport stable_23 --branch MDL-12345-23 --version 22 --push
        
        backup
        ------
        
        Backup a whole instance so that it can be restored later.
        
        **Examples**
        
        Backup the instance named stable_master
        
        ::
        
            mdk backup stable_master
        
        List the backups
        
        ::
        
            mdk backup --list
        
        Restore the second backup of the instance stable_master
        
        ::
        
            mdk backup --restore stable_master_02
        
        
        behat
        -----
        
        Get the instance ready for acceptance testing (Behat), and run the test feature(s).
        
        **Examples**
        
        ::
        
            mdk behat -r --tags=@core_completion
        
        
        create
        ------
        
        Create a new instance of Moodle. It will be named according to your config file.
        
        **Examples**
        
        Create a new instance of Moodle 2.1
        
        ::
        
            mdk create --version 21
        
        Create an instance of Moodle 2.2 using PostgreSQL from the integration remote, and run the installation script.
        
        ::
        
            mdk create --version 22 --engine pgsql --integration --install
        
        config
        ------
        
        Set your MDK settings from the command line.
        
        **Examples**
        
        Show the list of your settings
        
        ::
        
            mdk config list
        
        Change the value of the setting ``dirs.storage`` to ``/var/www/repositories``
        
        ::
        
            mdk config set dirs.storage /var/www/repositories
        
        
        css
        ---
        
        CSS related functions.
        
        **Example**
        
        Compile the LESS files from Bootstrapbase
        
        ::
        
            mdk css --compile
        
        
        doctor
        ------
        
        Perform some checks on the environment to identify possible problems, and attempt to fix them automatically.
        
        
        fix
        ---
        
        Create a branch from an issue number on the tracker (MDL-12345) and sets it to track the right branch.
        
        **Examples**
        
        In a Moodle 2.2 instance, this will create (and checkout) a branch named MDL-12345-22 which will track upstream/MOODLE_22_STABLE.
        
        ::
        
            mdk fix MDL-12345
            mdk fix 12345
        
        
        info
        ----
        
        Display information about the instances on the system.
        
        **Examples**
        
        List the instances
        
        ::
        
            mdk info --list
        
        Display the information known about the instance *stable_master*
        
        ::
        
            mdk info stable_master
        
        
        install
        -------
        
        Run the command line installation script with all parameters set on an existing instance.
        
        **Examples**
        
        ::
        
            mdk install --engine mysqli stable_master
        
        
        js
        --
        
        JS related functions.
        
        **Example**
        
        Compile the JS modules in Atto
        
        ::
        
            mdk js shift --plugin editor_atto
        
        
        Generate the complete YUI API documentation
        
            mdk js doc
        
        
        phpunit
        -------
        
        Get the instance ready for PHPUnit tests, and run the test(s).
        
        **Examples**
        
        ::
        
            mdk phpunit -u repository/tests/repository_test.php
        
        
        plugin
        ------
        
        Look for a plugin on moodle.org and downloads it into your instance.
        
        **Example**
        
        ::
        
            mdk plugin download repository_evernote
        
        
        purge
        -----
        
        Purge the cache.
        
        **Example**
        
        To purge the cache of all the instances
        
        ::
        
            mdk purge --all
        
        
        pull
        ----
        
        Pulls a patch using the information from a tracker issue.
        
        **Example**
        
        Assuming we type that command on a 2.3 instance, pulls the corresponding patch from the issue MDL-12345 in a testing branch
        
        ::
        
            mdk pull --testing 12345
        
        
        push
        ----
        
        Shortcut to push a branch to your remote.
        
        **Examples**
        
        Push the current branch to your repository
        
        ::
        
            mdk push
        
        Force a push of the branch MDL-12345-22 from the instance stable_22 to your remote
        
        ::
        
            mdk push --force --branch MDL-12345-22 stable_22
        
        
        rebase
        ------
        
        Fetch the latest branches from the upstream remote and rebase your local branches.
        
        **Examples**
        
        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.
        
        ::
        
            mdk rebase --issues 12345 56789 --version 22 23 master --push
            mdk rebase --issues MDL-12345 MDL-56789 --push stable_22 stable_23 stable_master
        
        
        remove
        ------
        
        Remove an instance, deleting every thing including the database.
        
        **Example**
        
        ::
        
            mdk remove stable_master
        
        
        run
        ---
        
        Execute a script on an instance. The scripts are stored in the scripts directory.
        
        **Example**
        
        Set the instance stable_master ready for development
        
        ::
        
            mdk run dev stable_master
        
        
        tracker
        -------
        
        Gets some information about the issue on the tracker.
        
        **Example**
        
        ::
        
            $ mdk tracker 34543
            ------------------------------------------------------------------------
              MDL-34543: New assignment module - Feedback file exists for an
                assignment but not shown in the Feedback files picker
              Bug - Critical - https://tracker.moodle.org/browse/MDL-34543
              Closed (Fixed) 2012-08-17 07:25
            -------------------------------------------------------[ V: 7 - W: 7 ]--
            Reporter            : Paul Hague (paulhague) on 2012-07-26 08:30
            Assignee            : Eric Merrill (emerrill)
            Peer reviewer       : Damyon Wiese (damyon)
            Integrator          : Dan Poltawski (poltawski)
            Tester              : Tim Barker (timb)
            ------------------------------------------------------------------------
        
        
        uninstall
        ---------
        
        Uninstall an instance: removes config file, drops the database, deletes dataroot content, ...
        
        
        update
        ------
        
        Fetch the latest stables branches from the upstream remote and pull the changes into the local stable branch.
        
        **Examples**
        
        This updates the instances stable_22 and stable_23
        
        ::
        
            mdk update stable_22 stable_23
        
        This updates all your integration instances and runs the upgrade script of Moodle.
        
        ::
        
            mdk update --integration --upgrade
        
        
        upgrade
        -------
        
        Run the upgrade script of your instance.
        
        **Examples**
        
        The following runs an upgrade on your stable branches
        
        ::
        
            mdk upgrade --stable
        
        This will run an update an each instance before performing the upgrade process
        
        ::
        
            mdk upgrade --all --update
        
        Scripts
        =======
        
        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.
        
        ::
        
            # From anywhere on the system
            $ mdk run helloworld stable_master
        
            # Is similar to typing the following command
            $ cp /path/to/script/helloworld.php /path/to/moodle/instances/stable_master
            $ cd /path/to/moodle/instances/stable_master
            $ php helloworld.php
        
        Scripts are very handy when it comes to performing more complexed tasks.
        
        Shipped scripts
        ---------------
        
        The following scripts are available with MDK:
        
        * ``dev``: Changes a portion of Moodle settings to enable development mode
        * ``enrol``: Enrols users in any existing course
        * ``undev``: Reverts the changes made by ``dev``
        * ``users``: Creates a set of users
        * ``webservices``: Does all the set up of webservices for you
        
        License
        =======
        
        Licensed under the `GNU GPL License <http://www.gnu.org/copyleft/gpl.html>`_
        
Keywords: mdk moodle moodle-sdk
Platform: UNKNOWN
Classifier: Development Status :: 6 - Mature
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Education
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
