<<toc>>
== Why Contribute?
The success of [[mariadb|MariaDB]] depends on the participation of the
[[community]]. MariaDB would not be as good as it is today without the
participation of the entire [[community|MariaDB community]].
== Getting Started
There are several ways to contribute, and not all of them require
strong C/C++ skills. Areas for non-developers include:
* [[http://bugs.launchpad.net/maria|Reporting Bugs]]
* [[jira-project-planning-and-tracking|Suggesting Features]]
* [[http://kb.askmonty.org/questions/|Answering questions]] in the Knowledgebase.
* Testing and Benchmarking
** Bug tests can be uploaded to the 'private' directory of our [[FTP]] server.
* Creating [[contributing-to-the-askmonty-knowledgebase|documentation and KB articles]] for MariaDB, or [[translation-howto|translating existing documentation]].
* Advocating MariaDB in your area
* Participate on open source events and talk about MariaDB.
* Running a [[buildbot|BuildBot]] on a platform which is not currently
[[http://askmonty.org/buildbot/waterfall|represented]].
* Finding someone that can [[donations|donate]] time or money to the MariaDB
project.
<<style class="bluebox" style="text-align:center;font-family:Droid Sans;">>
**[[contributing-to-the-askmonty-knowledgebase|Contributing to the Knowledgebase]]** is a great way to help improve MariaDB.
<</style>>
=== MariaDB Email Lists
A great way to get started in MariaDB is to participate in e-mail discussions
via our Launchpad lists (whichever list best matches your interests):
* [[http://launchpad.net/~maria-developers|maria-developers]]
* [[http://launchpad.net/~maria-discuss|maria-discuss]]
* [[http://launchpad.net/~maria-docs|maria-docs]]
You can find additional email address, email archives and ways to connect with MariaDB people [[where-are-other-users-and-developers-of-mariadb|here]].
All MariaDB contributors are expected to follow the
[[http://www.ubuntu.com/community/conduct|Ubuntu Code Of Conduct]].
== Getting Started for Developers
There are several reasons why contributing code is one of the easiest and most rewarding ways to contribute to MariaDB:
# We are very responsive toward reviews of submitted code and as soon as the
review is done, the submitted code is merged into an existing MariaDB tree
and made available to everyone, not just select customers.
# Code reviews are performed by the
[[what-are-the-criteria-for-becoming-a-maria-captain|MariaDB core development team]]
and the quality, detail, and timeliness of our reviews are better than you
will find elsewhere.
# With MariaDB everyone has access to the latest code.
# If a patch is very safe and/or very useful we are willing to push it into the
stable code (as long as it can't break any existing applications). We are
willing to do this to ensure the freedom to add small, needed fixes on a
stable release so users don't have to wait a year for something to be added
which is critical to their business.
# If you are an active contributor, you can
[[what-are-the-criteria-for-becoming-a-maria-captain|become a member]] of
[[https://edge.launchpad.net/~maria-captains|maria-captains]], even if you
aren't working for Monty Program Ab. All captains have the same rights as any
other captain to accept and reject patches. Our development model is truly
open for everyone.
The [[contributing-code|Contributing Code]] page details many of the actual
steps involved in working with the MariaDB source code. It's important that you
use the same tools and submit patches in the same way as other developers to
keep development running smoothly.
=== Expectations for Developers
Not just any bit of code can be accepted into MariaDB. In general, we expect
any code you contribute to:
* be nice, modular, performant, easy to read, and believed to be bug
free.
* be properly reviewed by at least one maria-captain.
* follow the MariaDB coding standards.
* not contain duplicated code / features that we already have.
* provide a new valuable addition to MariaDB that benefits a
large number of users.
* not break anything for old MySQL / MariaDB users.
* not stop anyone from implementing another important feature.
On a personal note, we expect you to:
* follow the [[http://www.ubuntu.com/community/conduct|Ubuntu Code Of Conduct]]
* participate in e-mail discussions via our Launchpad lists (whichever list is
most appropriate):
** [[http://launchpad.net/~maria-developers|maria-developers]]
** [[http://launchpad.net/~maria-discuss|maria-discuss]]
** [[http://launchpad.net/~maria-docs|maria-docs]]
* register yourself as a **Maria** developer on
[[http://launchpad.net/~maria-developers|Launchpad]]
* maintain a positive, productive, light-hearted attitude. Developers
temporarily stepping away gracefully to ensure real productivity is always
understood in our community. Emphasis on gracefully.
* work with the [[http://launchpad.net/~maria-captains|maria-captains]] to get
your code approved.
* submit your approved code to the captain who worked on your review or to the
email list for inclusion in MariaDB.
* take ownership of the code that you submit, and interact as
a cohesive whole with other code-owners. This means you should:
** fix bugs in your code
** review, approve or apply your own version of code that people
submit to you that touches your code.
** be available for people that want to discuss your code.
** help upgrade your code from one MariaDB version to the next.
If you are unable or unwilling to follow the above expectations, then the
maria-captains, or ultimately Monty Program Ab, will find someone who will take
ownership of your code.
=== Code Licensing
Similar to other open source projects,
[[http://montyprogram.com|Monty Program Ab]] needs to have a shared ownership
of the code that is included in the MariaDB distribution. This can be done by
submitting your code under the
[[http://en.wikipedia.org/wiki/BSD_licenses|BSD-new]] license. The only
currently known exceptions to this rule are storage engines and code that is
loadable through a plugin. For these, it's enough that the code is GPL.
If you want to submit code under a license other than
[[http://en.wikipedia.org/wiki/BSD_licenses|BSD-new]], sign and email the
[[http://montyprogram.com/mca|Monty Program Contributor Agreement]].
=== Where are the Developers?
* Most of the core developers hang out on [[IRC]] in the **#maria** channel on
**freenode**.
* Code, proposals, and feature requests are sent to (and discussed on) the
[[http://launchpad.net/~maria-developers|maria-developers list]].