Skip to content

Contributing as a developer

Cameron Blankenbuehler edited this page Apr 2, 2024 · 11 revisions

Somehow you've stumbled upon Tatoeba, found the project (very?) interesting and would like to contribute to it as a developer. This article is here to help you get started.

Get in touch with us

The first thing you'll want to do is to let us know you are interested in contributing as a developer. Simply post a message in the Discussions! Or if you prefer to contact us in a more private way, you can write to us at [email protected].

Optionally, you can tell us a bit about yourself:

  • Where are you from? Which languages do you speak?
  • How much experience you have in programming/web development? Don't worry, you don't need to be an expert or anything.
  • How did you discover Tatoeba and what is your username on Tatoeba (if you have an account)?
  • Is there something specific you'd like to work on?

Github

Our source code is hosted on GitHub so you'll need to create a GitHub account if you don't already have one.

If you are new to Git and/or GitHub, you'll have to spend a bit of time learning about it. You'll need especially to understand how to submit a pull request. Please read our guidelines.

Install Tatoeba and explore the code

You will need to install Tatoeba on your machine so that you can test your code before you submit it to us.

Follow the instructions in the TatoVM README to install Tatoeba. If you have any trouble installing and running Tatoeba locally, do not hesitate to ask for help.

Before you dive into the code, you will need to learn about CakePHP. There are several versions of CakePHP and we use the version indicated in our composer.json.

Your first contributions

You can take a look at our issues and see if there's any problem listed in there that you'd like to try and solve. If you prefer to have a more organized view of the issues, you can check this wiki page from @agrodet who categorized the issues into various topics.

If you managed to find an issue you want to work on, you can start right away. Just let us know that you want to work on that issue by posting a comment saying "I would like to work on this issue". This ensures that aren't two people working at the same time on the same thing. Do not hesitate to ask questions if the issue does not have enough information.

If you have not found any issue you could work on, somebody (most likely @trang) will try to find for you an issue that should be easy enough to get started.

It is recommended that you first work on a couple of easy tasks to get a clearer idea of how Tatoeba works. Once you are comfortable with it, you can move on to more difficult tasks.

Our workflow

Website updates

We update Tatoeba more or less every week.

There is a milestone created for each update. If you've sent us a pull request and are wondering when your code will be integrated and deployed into production, you can simply check if your issue is added to one of the milestones.

You can check the closed milestones to get an idea of what has been released in the past updates.

Dev website

We have a dev website where our users can test some of our code before we release the code on the real (production) website.

When we introduce changes, we will most of the time release it on the dev website first. We then ask our users to test and give feedback. We fix stuff or improve stuff based on the feedback. And then we release on the production website.

If you'd like to explore the features of Tatoeba without being afraid of polluting the database of the production website, feel free to use the dev website.

Thanks for your interest and happy coding

That's pretty much all you need to know to get started. If there's anything that is not clear or if there's anything important to know for new developers that we didn't mention, don't hesitate to let us know.