If you want to contribute to MariaDB but have a doubt about what to work on,
this page lists possible projects. The projects are picked to be
* features that are considered to be needed/relevant (so, there will be
interest to accept the code into MariaDB)
* features that will not require the implementer to work in "difficult" parts
of the code and/or make high-risk changes that could be rejected out of
concern that they could destabilize the codebase
<<style class="bluebox" style="text-align:center;font-family:Droid Sans;">>
The list is by no means complete. If you have an idea, ask on
[[where-are-other-users-and-developers-of-mariadb|mailing list/IRC]].
<</style>>
=== Progress reporting for ALTER TABLE ... ADD INDEX ===
* **Description:** MariaDB has support for
[[progress-reporting|progress reporting]] during DDL statements. In some
scenarios, progress reporting actually works. In
others (##ALTER TABLE ... ADD INDEX## being the most important of them) it
has not been implemented. The task is to place progress reporting statements
at appropriate places in the code, so that ##ALTER TABLE ... ADD INDEX##
provides some clues about which fraction of work it has done/has left. The
[[progress-reporting|progress reporting]] page has a section which gives
clues what kind of statements will need to be inserted. Finding where to put
them is left as an exercise for the implementer :)
* **Background required:** C, C++
* **Mentors:** Sergei Petrunia
* **Implementer:** Perry Huang
=== plugin error reporting ===
* **Description:** Implement an error reporting plugin service. It's a set of
functions that allows plugins to have their own errmsg.sys files and write
error messages to the error log or to the user. See
http://forge.mysql.com/worklog/task.php?id=2940 for details.
* **Background required:** C, C++
* **Mentors:** Sergei Golubchik
=== regex enhancements ===
* **Description:** MySQL and MariaDB use an old regex library, it works
bytewise, and thus only supports one byte character sets. It needs to be
replaced by a modern multi-byte character set aware regex library.
Additionally a much requested ##REGEX_REPLACE## function could be
implemented.
* **Background required:** C, C++
* **Mentors:** Sergei Golubchik
=== extend perror to know about server errors ===
* **Description:** The ##perror## tool is used to print a text message
corresponding to an error number. It has a hard-coded list of error numbers
and error messages. It needs to be fixed to read errmsg.sys files, just like
the server does.
* **Background required:** C
* **Mentors:** Sergei Golubchik
=== LDAP authentication plugin ===
* **Description:** A MySQL/MariaDB authentication plugin that takes user credentials from LDAP.
* **Background required:** C, good familiarity with LDAP
* **Mentors:** Sergei Golubchik
=== MacOSX Installer ===
* **Description:** To create a MacOSX installer for MariaDB. Make the build
scripts work, and integrate it with BuildBot so we get automated MacOSX
builds for MariaDB.
* **Background required:** Knowledge of Apple toolchain, plus the GNU
toolchain. PackageMaker knowledge useful, as is some Perl knowledge.
Understanding shell scripting also.
* **Mentor:** Colin Charles
=== Linux packages for distributions ===
* **Description:** To create packages for all major distributions out there.
This includes RPM specfiles that are relevant to say Fedora, OpenSUSE, etc.
following their packaging guidelines; creating DEBs for Debian/Ubuntu
following their packaging guidelines; port files for *BSD's, OSX, etc. The
goal is to also work with other projects to become a maintainer of MariaDB in
those various distributions.
* **Background required:** Shell scripting, ability to be flexible,
understanding Makefiles, other build systems, etc.
* **Mentor:** Colin Charles
=== MariaDB management console snapin and WMI Provider (Windows) ===
* **Description:** Since Windows 2000, the standard/recommended/integrated solution for implementing software management tools on Windows has been Microsoft Management Console. Another system mechanism known as WMI (Windows management instrumentation) adds the ability to manage software remotely.
In MariaDB, we would like to have a management console to handle different database instances - create /remove /upgrade /start /stop MariaDB services, show and analyze error log, modify configuration parameters. It should be able to work with local database instances, as well as remote ones, using WMI.
The task would be to implement WMI provider and MMC snapin.
* **Background required:** C++/COM or .NET, WMI, MMC. Powershell knowlegde is a plus.
* **Mentors:** Vladislav Vaintroub