How can I begin contributing?

Other platforms, generic questions.
Post Reply
lostinparadise

How can I begin contributing?

Post by lostinparadise »

Hello,

I've been using qBittorrent for some time now and I'm interested in contributing to the project; however, I have never contributed to a large open source project before. For background, I'm experienced with C++, Java, and Python (I think).

I skimmed through the issues in the github repo but they all look really complicated. How do I understand the individual components of the project? Are there any simple tasks that need to be worked on but hasn't? Also, are newbies generally welcome to contribute or does the team only really look for highly experienced developers? Finally, is there an IRC/Discord/Slack that you use or is communication mainly done on this forum?

Thanks
User avatar
Peter
Administrator
Administrator
Posts: 2690
Joined: Wed Jul 07, 2010 6:14 pm

Re: How can I begin contributing?

Post by Peter »

Hey, sorry for the late reply.

You can contribute even by just helping out people here, on Discord, or on the Github tracker.
Translating the program into your native language is another helpful thing you can do.

The main communication is IRC - but I am not sure about the traffic there.
Ever since I've left Linux, I've had a struggle to find a proper IRC client on Windows and thus, I just never went back to IRC myself.

Of course, programming is where the real fun is at. You did right, the Github Issue tracker is where you should look.
There are things marked with "easy to fix" labels, and often times you can find people requesting quite simple (but esoteric) changes. How to implement something? To learn about how devs do it in qBittorrent, check pull requests on the Github. You can see how each change is plugged into the code (for example a new setting, a new behavior.) Then try to implement it yourself.

Personally, I find an Ubuntu VM the easiest to work with. You simply "apt build-dep" everything for qBittorrent, grab the source via git and then go at it. It should compile just fine, and you can just compile changes really easily this way. This is of course, a quick and dirty way to just practice, but IMO the fastest way to get started.

Once you find something you feel like you could implement, you can write your changes, test it, and then submit a pull request. Worst case, you get told that your code does not meet certain requirements. But don't let this break your motivation - all projects are like this. Just because Mr. X thinks his coding style is the best, and his change to the Linux kernel is crucial - it won't be merged. Contributor code must follow certain guidelines, etc.

Good luck!
Post Reply