October 3, 2016 - François-Michel L'Heureux
Hacktoberfest 2016

Hacktoberfest is back with its 2016 edition and this year MLDB joins in!

What is Hacktoberfest? It’s a month long celebration of open source that encourages contributions and exploration of open source projects, hosted in partnership between GitHub and DigitalOcean. On the project side, maintainers can add the “Hacktoberfest” tag to some of their issues to attract contributors. On the contributor side, submitting four pull requests related to issues tagged “Hacktoberfest” will make you win a free T-shirt.

How can you contribute to MLDB

We have 2 categories of tasks: demos and coding.

Demos

If you are more comfortable in a notebook than in vim, this is for you. We are always looking for great demos to showcase the capabilities of MLDB and help new users get started more quickly. To give you an idea of what we’re looking for, we created three issues related to demos. You can also refer to our existing demos for inspiration. If you have other ideas, we are opened to suggestions.

If you are on OSX or Windows, the best way to work on demos is to use the OVA version of MLDB. See “Getting Started with the Virtual Appliance (OVA)” under Running MLDB. If you love pinguis, you also have the option to using the Docker version.

As for the skills required, python and data science are the two key elements here.

Coding

You love to code? Good. This is not for the faint of heart. To work on the coding side means that you will have to compile MLDB, which can take quite a lot of time for the first compilation. (Using clang, about 15 minutes on a 2 cores of a 3.47GHz of an Intel(R) Xeon(R) CPU.) After that things should be better as you will only need to recompile the parts that depend on your changes. The build instructions are here. Make sure to turn on ccache on your first compilation. Also, check sample.local.mk to avoid building MLDB for all its supported architectures.

Pro tip: If you want to minimize compile times, use clang instead of gdb. That means that on the command line, your make command should look like make -j$(nproc) mldb_runner toolchain=clang

As for the skills required, they vary from issue to issue. Among them are C++ (mostly), gdb, Python and lots of courage (the code base is big!) for the server and testing side. For improving our client UI, knowledge of basic web technologies is what you’ll need.

Need help?

We’re always hanging out on Gitter, so drop us a line if you get stuck.

I am ready! Where are the issues?

The issues are right here.