Getting started with contributing
You're not a developer but you want to help the diaspora* project? Check the other ways to contribute!
A lot of new contributors that want to dive in to helping fix bugs and develop new awesome things often ask "Well, where do I start?". Below are some links to comprehensive resources so that newcomers can get up to speed and get dive right in to fixing bugs.
Getting started with git and GitHub
All of Diaspora's code is hosted on GitHub, a social coding platform that leverages Git for many different Free and Open Source projects. You can use any operating system to contribute with GitHub, all you need is an account and to follow GitHub's easy and helpful guide for setting up your account from the command line and learning to use the commands. Git is supported on all major platforms.
Once you're all set up, check out the issue tracker and watch for entries tagged with "newcomer" or "quickfix". Most often those are the things which you don't need a deep understanding of the complete codebase for to work on them, and the tasks should be easy enough for novice programmers to tackle. You can also check the label "help wanted", we use it to point what feels important to us.
All about bugs
There are some different things about bugs that you ought to know, specifically, how to report a bug, and how to claim and fix a bug. Both incorporate well into our GitHub-based workflow, and is designed to make the process of fixing bugs easier for everybody.
How to contribute the right way
Diaspora's development tries its very best to stick to a set of guidelines when it comes to contributing code. When you're writing a bugfix or custom code from scratch, it's good practice to ask yourself:
- Does my code have tests?
- Am I sticking to the Git Workflow the best I can?
- Do I follow the styleguide?
Also, please familiarize yourself with some good tips on how to become a member in an open source community.
Why don't get I feedback for my requests/contributions for a long time?
First of all, diaspora* development is running by the all-volunteers team which have their own life with their jobs, so the time they dedicate to diaspora* development is limited. Besides there is a lot of work around diaspora* which requires their attention besides supporting contributors.
Another thing to note is that when you're a newcomer you'll likely face some problems while working on your contributions. It is natural to ask for help and expect support from the project team members. Sometimes people feel that since they're contributing to a project it makes their work valuable enough to make them the first priority (or so) to get support from maintainers.
In the article "4 tips for breaking into an open source community" author cites Chris Hadfield's book:
“In any new situation…you will almost certainly be viewed in one of three ways. As a minus one: actively harmful, someone who creates problems. Or as a zero: your impact is neutral and doesn’t tip the balance one way or the other. Or you’ll be seen as a plus one: someone who actively adds value. Everyone wants to be a plus one, of course. But proclaiming your plus-oneness at the outset almost guarantees you’ll be perceived as a minus one, regardless of the skills [or value] you bring to the table or how you actually perform.” ... “When you have some skills but don’t fully understand your environment, there is no way you can be a plus one. At best, you can be a zero. But a zero isn’t a bad thing to be. You’re competent enough not to create problems or make more work for everyone else. And you have to be competent, and prove to others that you are, before you can be extraordinary.”
So when you're working on your contributions and request support from the project's team and don't get a response it might be that you've acted like a "minus one". Perhaps instead of requesting help you should aim to be helpful or at least neutral.
Other helpful resources
Below are some helpful relevant links to other parts of the wiki. We're currently restructuring everything, so the below links may be subject to change.