Table of contents

    Development - Getting Started

    It’s relatively easy to get started working on MonoDevelop, but this page aims to make it easier to get off the ground.

    If you’re on macOS you can also try @dvdsgl’s one step install: https://github.com/dvdsgl/monodevelop-build

    Setting up an Environment

    MonoDevelop doesn’t require the very latest version of Mono, and we specifically depend on GTK+ features no later that GTK+ 2.8. That said, using a recent release of Mono and Gtk# is likely to improve reliability and performance.

    It is strongly recommended to use a packaged release of Mono for your distribution, as it is very easy to mix up conflicting Mono versions if installing from source. If you must install Mono from source, set up a Parallel Mono Environment.

    Make sure you have git installed, and check MonoDevelop out from GitHub.

    Building and Installing

    Open a terminal in the top-level MonoDevelop directory, and run

    ./configure --profile=core
    

    It may fail because of missing dependencies; install them, and re-run the command.

    There are a number of other profiles that can be used; the command

    ./configure --help
    

    explains how they are used.

    Next, use

    make
    

    to build MonoDevelop.

    Since you’re working on the development version, it’s best not to install it; instead, you can use

    make run
    

    to run it without installing it.

    It is a good idea to keep separate copies for using and developing.

    If you do install MonoDevelop, it is best to run the current version uninstalled, to make sure it works, before installing it.

    Working on MonoDevelop

    Before hacking on MonoDevelop, don’t be afraid to ask questions on monodevelop chat. People will be able to give you pointer about where to start and how best to approach the problems you are trying to solve. There are also number of Articles on the MonoDevelop architecture and on implementing addins.

    The MonoDevelop solution can be opened from MonoDevelop, and builds can be preformed from within MonoDevelop. Indeed, some parts of the build (such as Stetic code generation) must be performed within MD. However, the modified MonoDevelop must be run from a terminal with

    make run
    

    You should follow our contribution rules, for code style and licensing.

    After you have made your changes, commit them with a descriptive message and open a pull request on GitHub.

    Troubleshooting the Build

    If the MonoDevelop build fails, there are a number of possible fixes.

    If the build commands failed, try a clean rebuild:

    make clean; make
    

    and fix any that are in conflict, or delete any that have changed unnecessarily.

    If the build system failed, check for changed files and re-run the configure script.