The OCA is an Open Source community, therefore, it is easily accessible to everyone and we can collaborate whenever we want. The vast majority of developers, implementers and Odoo users, if not all, will need to make use at some point of the modules provided by the community, and it is possible that in return, we may want to make some contribution to do our bit. However, given the complexity that may involve dealing with code or the wide catalog of modules with their respective dependencies, we feel held back from getting into the collaborative world.
In this article we want to talk to you about a series of activities that can be carried out to collaborate with the community without the need to have a high level of knowledge of development or of how Odoo works. These actions, even if they are not entirely fundamental, are very valuable and important for a proper development of the modules and also, will allow us to get introduced and become familiar with the environment, the code and the functioning of the modules.
Functional Testing
The most important activity among all those within our reach and that we can carry out, is to give feedback on the work done by the community. To do this we will have to go to the OCA's GitHub, access a repository and then go to the Pull request tab. A long list of work done by users will appear and is waiting for comments from others to validate their work.
This way we can test how the development works by accessing the runboat (OCA tool that allows running an Odoo instance) which will have been created within the Pull request (commonly shortened using the acronym PR).
We can also read the comments from the creator and other users within a thread and provide our own comments that help improve the development.
In the same way, if we test the development, we can do a review, whether positive or negative, going to the code part and clicking on the Review changes button. These reviews are the valid way to approve a development. In case our feedback is positive, we can select the approve option and leave a positive comment or simply LGTM (acronym for Looks Good To Me).
Translations
On the other hand, another important action is to add missing translations in the modules. It can happen that in the language we are using Odoo, some terms added by an OCA module are not translated into our language. In that case we can be the ones to help by adding the translations.
It’s also helpful to periodically review modules to check for untranslated content. To contribute translations, go to the module's code on GitHub and click the Translate me button. This will redirect you to the OCA Weblate platform, where you’ll need to be registered first. It is also necessary to do a general review of the modules in search of pending translations. To add translations, we go to the code of an OCA module and click on the Translate me button. This will take us to the OCA translation page, and we will first have to be registered.
Needs Analysis
When we review community Pull Requests, as we mentioned before, it is necessary not only to check if the development works well, but also to be critical if, in context, the development makes sense. It is very likely that a user is trying to add a module or an improvement to an existing one that may not make sense. Either because that functionality may already be implemented, or because it requires high configuration or excessive work for which there is already a similar and more efficient alternative. Or simply because it no longer makes sense when moving to a new version because the base functionality no longer exists or has been integrated into the core.
That is why, if we have some broad knowledge of the tool, we should be critical with the developments added, in order to build a catalog of efficient solutions, without exceeding the limits of what is practical.
Answering questions in forums
Finally, there is a section within the OCA GitHub dedicated to allowing users to post their questions about the use of the modules. They can also report found bugs to be fixed, or developers themselves open discussions about the development of a needed solution or raise problems that should be addressed. We can feel free to participate in these discussions and share our vision of it or simply help other users who may also help us.
Sharing the experience
Another activity we can do is to spread the word about the OCA. Although it may seem like a small action, by promoting it, the OCA manages to reach more people and, in this way, increase its strength. In the end, the OCA is a community, and new people joining helps both those already inside and those who can learn from it.
In summary
As we can see, there are many activities that can be carried out to collaborate with the community without needing to know how to program or write a single line of code, but which are equally important and help developers and maintainers to keep the modules and the community well maintained. Also, it will allow us to learn more about how the community works, the number of solutions that exist and how they work. And it can even help us become familiar with the code.