Close search
Hoa

Reboot the contribution process

Written the .

One of the biggest challenge when creating and maintaining an open-source project is to communicate with the community. The community is the basis and the main power of the open-source: It provides an important task-force and also advanced skills in several domains. Then, since the community is one of the foundation of any open-source project and we need to communicate between each other a lot, a new challenge appears: How to provide a decentralized and remote overview of the work? Put in other words:

  • What should be done?
  • What is ready to be done?
  • What is in progress?
  • What is under review?

They are all legitimate questions. For who though? The questions are useful for long-term contributors as much as new contributors. In addition to these questions, we might also wonder: Who are the people to talk to? Who is responsible to what?

To answer these questions, we totally reboot our contributor guide. In the meantime, we also introduced new powerful tools to ease the contribution process. Let's highlight some of them.

Boards to get overviews!

Let's remind that Hoa hosts its own Git repositories. However, mirrors exist on Github and Pikacode. Several tools are linked on Github, such as: Waffle. This service provides カンバン for free if you have public Github repositories. A カンバン (kanban) is basically a board presenting works in columns. We set the following columns:

  1. Backlog, things under discussion,
  2. Ready, things that are ready to be done,
  3. In progress, things that are being done by some contributors,
  4. Done, things that have been recently done.

All hack book chapters have been updated to include a link to the associated board of the library. So, for instance, go check the Hoa\Websocket library: You will see a Board icon pointing to its dedicated board. Great!

Since the Central is a repository aggregating all repositories, this is logical its board provides the highest overview of all the works of all the libraries.

Difficulty?

A new “feature” we believe to be a game changer for contributors is the difficulty labels. Each work (issues or PR) has several labels attached, such as bug, enhancement, question etc. Now we have 3 new labels describing the difficulty of the work; thus:

  • casual, can be done by a new contributor or can be done quickly,
  • medium, requires some skills to address this work,
  • hard, requires strong skills in the code and the domain it addresses.

Nice overview isn't it? Not yet. Instead of checking all works one after the other to discover its difficulty, we can use board' search engine by typing difficulty: level. Enjoy the filtering!

And yes, you guessed it, you can do the same thing on the Central, so:

This feature will guide you when starting new contributions. Also it provides an overview of how difficult works are going to be. This is really important: Not everyone has 1 week to give to an open-source project. Sometimes we only have 1 hour. What to do in this case? Pick a library, choose the casual difficulty and enjoy!

Development tools

We have introduced a new library recently: Hoa\Devtools. This library gathers a majority of the tools we daily use to maintain Hoa. This library is for contributors as well as maintainers.

Among the tools it includes, we find PHP-CS-Fixer. Recently, Hoa has adopted PSR-1 and PSR-2, and we used this tool. Hoa\Devtools provides a nice command: hoa devtools:cs which prepares all the fixers, rules etc. to apply for you.

Development tools are automatically installed when you install test tools (aka Hoa\Test).

Conclusion

This blog post highlights some of the main points we rebooted in the contribution process, such as the boards and work difficulty. We think it will change the way you see the project, the way we communicate about it and more importantly, the way you interact with it. Please, check the contributor guide. We cannot wait for your first contribution!

Comments

menu