If you want to contribute on the development of MonoDevelop, implement your own tools based on the platform, create new add-ins for the IDE, or just know more about the project, you'll find some useful information in this page. Here are some interesting links to start with:
- Articles: A collection of articles written by the MonoDevelop community. You'll find technical documentation, tutorials and other useful information for learning about the MonoDevelop platform.
- TODO: A list of features we would like MD to have. If you want to contribute, just pick one of them and notify through the mailing list that your are going to work on it.
Contribute
MonoDevelop is always looking for contributors to help with development. If you have some time and want to help, there are instructions below.
Reporting Bugs
Reporting bugs is a very easy way to help contribute to any project. MonoDevelop bugs are be filed at bugzilla.novell.com.
To report a bug, follow the steps below:
- Create a Bugzilla account.
- Ensure the bug you are reporting hasn't already been fixed. Install the latest version of MonoDevelop using the "Current Development" instructions on the download page.
- Review the open MonoDevelop bugs and make sure that your bug hasn't been submitted already.
- If it hasn't been submitted, submit a new MonoDevelop bug.
Error traces gathered by running MD from a terminal are often helpful in tracking down a bug. For more information read the article on logging.
Submitting Patches
Patches have to be submitted by using the Pull Request mechanism that github provides. Here is a summary of how it works:
- If you don't already have one, you have to create your own fork of the MonoDevelop repository. You can do it using the Fork command available in the main page of the project in github.
- Make and commit your changes in your forked repository.
- In the main page of your forked repository, click on the Pull Request command.
- In the Pull Request dialog, enter a descriptive comment of the change and add a recipient. You can use following users as recipients:
- mhutch: ASP.NET, Mac port, MonoTouch, Moonlight, MonoMac, XML, T4
- mkrueger: Text editor, C#, refactoring operations
- slluis: everything else
Commit Rules
There are a few rules to follow when committing code:
- Enter a meaningful explanation in the commit log message.
- When entering a message describing a change, take into account that the goal is to explain why the change was done, rather than what was changed. For example, the message "Added property X" is in general useless since it is obvious looking at the patch.
- All changes included in a commit should be related and as atomic as possible. Here are some examples:
- You do an API change that affects several projects across the source tree. All changes can go in a single commit.
- You implement a new feature A, for example, in MonoDevelop.Projects. Then you implement another new feature B that uses A in MonoDevelop.Ide. Although those changes are related (B needs A), they should be committed separately, since they belong to two different features.
- Don't do reformatting commits, unless you're the original author of the code.
- Never remove copyright notices from the code.
- Never remove licensing info from code.
- Never commit code you didn't write yourself or code that doesn't have a suitable license.
Coding Guidelines
New code written for MonoDevelop should follow the generic Mono Coding Guidelines.
with the following exceptions:
- it is allowed to use camel case for field names.
- code must be indented using tabs, not spaces
You should also follow our Human Interface Guidelines when designing windows and dialogs.
A Note on Licensing
All new code must be licensed under either a MIT X11.
Code and libraries licensed under version 2 of the LGPL license are acceptable under extraordinary circumstances.
Code licensed under the GPL cannot be accepted.
Although addins that do not follow these rules cannot be accepted into the MonoDevelop source repository, they can be hosted elsewhere. However, this generally means that they are much less likely to be maintained and distributed.
Working on the Website
We are always looking for help on developing the Monodevelop web site. If you're interested, please contact lluis at ximian dot com. Currently, we're are looking for the following:
- Tutorials
- Screenshots
- Content writers
Any contributions you may have though would be appreciated. The list above is in no way all inclusive.