Contributing to the MariaDB Project
Contents
Why Contribute?
The success of MariaDB depends on the participation of the community. MariaDB would not be as good as it is today without the participation of the entire 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:
- Reporting Bugs
- To report a bug you'll need to sign up for an account by clicking on the Create an account link below the login fields
- Suggesting Features
- Answering questions in the Knowledgebase
- Helping other people answering problems or even fixing their bugs on IRC in the #maria and #maria-dev# channels on freenode.
- Testing and Benchmarking
- Bug tests can be uploaded to the 'private' directory of our FTP server.
- Creating documentation and KB articles for MariaDB, or translating existing documentation.
- Advocating MariaDB in your area (see also MariaDB Community Ambassadors).
- Participate in open source events and talk about MariaDB.
- Running a BuildBot on a platform which is not currently represented.
- Donate time or money to the MariaDB project.
- Ask your company to sponsor a feature.
Contributing to the Knowledgebase is a great way to help improve MariaDB.
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):
Sensitive security issues can be sent directly to the persons responsible for MariaDB security: security [AT] mariadb (dot) org.
You can find additional email address, email archives and ways to connect with MariaDB people here.
All MariaDB contributors are expected to follow the 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 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 become a member of maria-captains, even if you aren't working for the MariaDB Foundation or MariaDB Corporation. 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 page details many of the actual steps involved in working with the MariaDB source code. The page also includes links where you can find tasks to work on.
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 Ubuntu Code Of Conduct
- participate in e-mail discussions via our Launchpad lists (whichever list is most appropriate):
- register yourself as a Maria developer on 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 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 the MariaDB Foundation, will find someone who will take ownership of your code.
Code Licensing
Similar to other open source projects, the MariaDB foundation 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 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 BSD-new, sign and email the MariaDB Contributor Agreement.
Where are the Developers?
- Most of the core developers hang out on IRC in the #maria and #maria-dev# channels on freenode.
- Code, proposals, and feature requests are sent to (and discussed on) the maria-developers list.