I want to start contributing to diaspora development. Where should I start?


I would like to see if I have time to contribute to the diaspora development. I’ve been looking for information about the diaspora architecture, how code is organized, how federation in diaspora works, etc. but I’ve found disperse information and I don’t know if such information is outdated or not. Can anyone give me some links to learn about disapora “internals”? Basically, I’m interested in groups and in API development. I know that groups feature is not implemented and the Restful HTTP API is proposed but not implemented. But I need to understand disapora first.


Thanks for your interest.

The API and groups are two really big topics, and probably not a good start. But there are issues labeled with newcomer on GitHub, they are a good start to get to know the source code. You can maybe also have a look at issues with a help wanted label.

When you are interested in how the federation works, you can find the documentation here. There is also a documentation about the planned API here.

Thank you. Two more questions:

  • Is there any Docker or VM image to download and start coding? Where do I find information about disapora architecture, I mean, the interactions between each component (i.e. redis, mysql…)?
  • Which git branch should I use to send pull requests?

Like @supertux88 already mentioned, the groups feature is highly wanted, but really advanced. It contains not only frontend and backend work, but also protocol changes.

When you want to enhance the protocol, you should always do this in conjunction with @supertux88 since he developed the new version of it. And I would like to be informed about this as well. I’m no Diaspora developer, but I’m developing Friendica which is using the same protocol. And I had implemented the new Diaspora class for Friendica.

I guess you should have a look on other pull requests as well, so you know how this project is doing this. At Friendica - for example - we are having some coding rules, and I guess that Diaspora has some as well.

Hi, Víctor. It’s great that you want to start working on Diaspora!

I’m not one of the core developers, so listen far more to @supertux88 than to me, but I think you’ll find answers to most of your questions on our wiki. Here’s the article to help you start contributing (which talks about git workflow, etc), and here’s a list of articles in the Development category.

Community members have themselves packaged Diaspora into images such as Docker and VM, and while these may work well, they are not officially supported. In any case, a development instance is fairly straightforward to set up – even I managed it! – and there’s a link to how to install a dev environment for your OS at the foot of the ‘start contributing’ article.

Hope that helps.

There are some docker images from the community, but no official images. But the best way for development is to follow the installation guides in wiki.

Please base your branches on the develop branch and also send PRs to this branch.

I must be misunderstanding what you’re saying, because my understanding is that we base our development on develop but then create a new branch and do the actual code changes in that branch. We then make our PRs on this new branch, which gets merged with upstream/develop by the core team when it is accepted.

That’s what I meant with “base your branches on the develop branch”.

And that’s what’s meant with “send PRs to this branch” (“this” means develop).

So yes, that’s exactly how it works @goob, but your text explains it better.

OK, I was concerned that this might be read as 'push your PRs directly to develop', as has happened a number of times in the past. That’s how I read it, anyway!

Glad we got that cleared up. Thanks for your clarification.

1 Like