Contributing to Ubuntu MATE

I was wondering about contributing to the project more, apart from the usual bug tracking and troubleshooting that I’m able to do, by getting into and understanding the main codebase that makes this awesome distribution.:slight_smile:

At the same time I’ll learn a lot about programming, will be able to build cool stuff!:smiley:

I learned C for my minor CS course and more later for competitive programming, so I don’t know pointers and structures and all the other advanced stuff.

I recently started learning Python, and have basic understanding and implementation of everything I already know in C except the OOP part…

I’ve been playing around with and learning Bash too! And GTK+ interests me a lot!

So I was just seeking a sort of guideline or direction as to how I should approach, what else I should learn. Maybe someday I’ll find myself making pull-requests and commits on this project!:heart:

I’m not sure about opening this thread on “Development Discussion”. Sorry in advance if I’ve made a mistake…

Thanks in advance.:slight_smile:


You can check this:

and this:


A while ago I wrote a post about contributing to the project that may be a good starting point. Here:

What languages are programs in Ubuntu MATE written in?

Also feel free to ask more specific questions, like if there’s a particular package or bug that you want to work on, I can help direct you. The best place to start, honestly, is to scratch your own itch. Try fixing something that affects you on a regular basis :slight_smile:

1 Like

Thank you so much for your response!:slight_smile:

I’m finding it quite hard to understand many of the codes and how they are organised altogther, that just goes to show how much more I have left to learn about C and Python(and more)!:confused:

But I’m willing to go ahead, slowly. But I don’t know how I should approach!:confused:

And since you asked, there’s this one bug that has been reported here on Launchpad and here on GitHub. I would like to look into it since I was able to reproduce the problem.

Where and how do you think I should get started on this?

I would try to download the code, compile it and install it.
Then I would make some minor changes (in the about dialog for example) to make sure that the new version is running.
Then I would verify that the bug is still present and that there is not a pending pull request that solves the issue.
Then I would study the code in general and try to find where the offending code is (this can be hard).
If you find a solution to the bug, create a github account, fork the project, commit your changes and make a pull request.

1 Like

Yes, the hardest part for me is to understand the code and find the responsible lines.

That’s why I need to first learn, and that’s where I’m confused as to how to proceed!:confused: I’m a pretty novice coder at best.