Development: Getting Started

From $1
Table of contents

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

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 Subversion installed, and check MonoDevelop out from Subversion.

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 IRC or MonoDevelop mailing list. People will be able to give you pointer about where to start and how best to approach the problems your 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 form 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. Please add ChangeLog entries for all of your changes. There's one for each assembly.

After you have made your changes, produce a diff

svn diff ChangeLog changedfile1.cs changedfile2.cs > some_diff_file.diff

and attach your patch to an issue in http://bugzilla.novell.com or send it to the MonoDevelop mailing list.

Using Subversion

Subversion is a very powerful source control system used to track and store the history of the source code. This section provides a minimal set of the terminology and commands to get you started. Simply add --help to the end of any subversion command to get information about the options available. The Subversion book is also very useful.

TRUNK contains the current development main line; the latest version is called HEAD.

Your directory that you checked out from Subversion is called a working copy. Any changes you make will be kept in your own copy, and won't affect the repository unless they are committed. If you are reading this, you most likely won't be able to commit them, but will have to generate a path and send it to be reviewed and committed by a maintainer. Every time a commit is made, a new revision of the code is created.

Note that most of the following commands can be followed by a list of file and directories, separated by spaces; without such a list, they use the current directory.

To update the working copy to HEAD, use the command

svn update

To see the changes that have occurred since you last updated, without updating, use the command

svn log -r BASE:HEAD

The log command can also be used to review the log message history of any file.

To see the changed files in your own copy, use

svn status

to list the changed files, and

svn diff

to view the actual changes. The diff command can also be used to view the changes between any two revisions.

New files can be tracked by adding them with

svn add

Changed files can be reverted back to their pristine version with

svn revert

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

Also, view the changed files:

svn info

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.

Tag page

Files (0)

 
You must login to post a comment.
Page last modified 23:31, 9 May 2008 by M.j.hutchinson