Skip to content

Contributing to MonoGame

tomspilman edited this page Apr 20, 2012 · 10 revisions

Collaboration has been a core part of MonoGame for much of its existence and is required for it to continue to flourish.

How To Contribute

There are various levels of contributions which require different procedures.

Small Fixes

With a fix to a simple bug or an omission of a method very little coordination is required.

New Features

Major Refactor

Team Leads

(list of team leads by area of code and contact info)

Forking & Pull Requests

(the recommended way to fork, merge, and submit pulls)

Coding Standards

(including line ending standards)

IRC Build Bot

With the amount of platforms and pull requests it can be difficult to ensure any one change doesn't break the build. Not only are there a lot of contributions, but some users do not have access to the build environment for some platforms.

This is where the build bot comes in.

MGBOT sits in the #MonoGame IRC channel and performs builds and executes unit tests for all the current platforms on demand. You can use it to test any fork, branch, or pull request.

To build and text a branch you would enter following command into the IRC chat window:

mgbot test @<username/organization> <branch>

So for example to build the MonoGame develop3d branch:

mgbot test @mono develop3d

Or for a particular user feature branch:

mgbot test @dellis1972 my_feature_branch

You can also build a pull request using the following command:

mgbot test @<username/organization> pull <number>

So for example to build pull request 123 for MonoGame:

mgbot test @mono pull 123

In all cases the bot will respond with a message like the following:

<mgbot> Starting build and test for develop3d: Mono/MonoGame@c9007655. Watch it here: http://peanutcode.com/mgbuild/builds/137/

By opening the link you can see the results of the build including errors and test failures.

The bot is written and maintained by kungfubanana. If you run into any problems with the bot feel free to contact him via IRC.

Clone this wiki locally