Improvements to the contributor experience

Hello,

I’m new to jitsi development and I wanted to document some of the hurdles I see that prevented me from getting started easily.
I’ll focus on jitsi meet and the necessary libs and pieces of it simply because that’s what is interesting for me the most, but I think the points apply to most repos in the jitsi org.

So let’s get started. As a new developer I want to contribute to Jitsi Meet. So I open the github page.
Things look pretty good in this repo documentation wise.
There is a link to the development and to the contributing guidelines which provide me with everything I need to start contributing to the JS Client.

Now I’m a java developer, so just for me personally, I won’t be able to contribute much to this project.
But I read about jitsi-videobridge. This is a java project where I can contribute, yay :slight_smile:
But this is where the hurdles for new developers start.

  • There is no CONTRIBUTING.md, no code guidelines, no visible CI, no instructions on which java versions the code needs to run, in short: no documentation that helps new contributors. This is true for most repositories in the jitsi org that I looked at.
  • There are also no issues using the usual labels like “good for first contribution” or “up for grabs”
  • I wasn’t able to find a document/picture which just lists all relevant repos for jitsi meet. I’m able to find most with mvn dependency:tree and google, but it would be nicer to have some kind of central documentation for that.
  • The CLA Process. In some repos there is a bot which asks to sign a cla, while in others there isn’t. This is not consistent at all. Also I personally find the choice of focusing weird. Wh not use something like CLA Assistant with the same text which is properly integrated with github?

Don’t get me wrong, I’m not here to just complain. I want to improve the experience for other contributors like myself. So from my point of view we should do the following things:

  • add a CONTRIBUTING.md to all repositories
  • define code conventions (there are some linked at https://desktop.jitsi.org/Documentation/CodeConvention but I have no idea if those should be used for all repos or not)
  • enforce those conventions. For java there is checkstyle that does this. It can easily be integrated into maven and provides instant feedback to the contributor.
  • integrate the CI service with github better so contributors and maintainers get instant feedback just from looking at the pull requests. If this is not wanted with the existing Jenkins server, setup Github actions for it. They don’t interfere with each other.
  • Change the CLA Tool to something that is better integrated with github like https://cla-assistant.io/

I hope this doesn’t come across as rude. That’s not my intention at all.
What do you think of these proposals? Did I miss something? Or maybe some things already exist and I just don’t know about them?

I think these are all good ideas. Times are obviously a bit hectic right now but I think these are some good goals.

@bbaldino Thanks. Imho the easiest thing to do would be to add a CONTRIBUTING.md to each repository.
I think we’d only need to write one and use that in all repos.
Especially if jitsi is getting more attention at the moment we should at least provide an easy starting point.