High-quality code only

Community software marketplaces (like Odoo S.A's marketplace) with a large number of freelancers and third-party companies have a common problem of a low quality source code. From our experience of installing applications from the Odoo market, many of them cause errors or conflicts in other Odoo modules, do not work at all, or even can break your database because of poor quality code standards and lack of a code verification system. Below, we describe our general software development process as an example of a proper working system. We offer a professional setup of the development process for your company to enchance the quality of your code, make better relationships with your clients and to improve the overall image of your organization.

Our company guarantees the quality of the software code proven by our development process. We practice the continuous integration (CI), built with the help of GitLab. The development model we use allows to have safe and stable production branches. For a code to be merged to the master branch, it must first pass a series of automatic and manual tests. These checks save overall development time, allow to detect bugs and errors at early stages and ensure the high quality of a code.

Our CI Pipeline

In our development, we follow the Odoo Guidelines and OCA Guidelines. The whole development process happens on the development branches. Every developer in our team works on his own task on a separate branch. Merging changes directly to stable branches is prohibited. All updates to the stable branches are made through the pull requests and require all tests to pass and code review to be performed. So only the stable and well checked code makes it to the main branch. Our test coverage rate for the code is above 90%.

  


Any code changes should pass the following stages to be merged into the main branch:

1. Automatic static code analysis

This analysis provides code standartization and error detection on early stages of development. It is used to simplify workflow for newly arrived  project  developers.

We use the following code analyzers:

  • bandit - finds common security issues in Python code

  • pylint flake8  -  perform series of custom checks for mostly syntax errors and to ensure that your code complies with the PEP8 standard. These checks improve overall code readability and facilitate collaboration between developers encouraging them to write more standard code style

  • stylelint - helps to avoid errors and enforce conventions in your styles

  • check-versions - ensure that changes to main branches will change the version of addons

2. Automatic tests

These tests run in two modes:

  • tests on a clean database

  • tests with the changes made (migration tests)

Automatic tests ensure that the modified code works properly in a clean environment.
Migration tests verify that the code changes do not cause any errors.

3. Automatic check of translation coverage

Checks translation coverage for the languages you work with. This check allows to maintain a high translation coverage by doing a small portions of work throughout the development process instead of making a complete translations all at once.

4. Automatic review app deployment

After passing the tests, review app is automatically deployed. Review app allows your customers and non-developers to see and test the code changes on a real product. It also allows to perform manual testing.



5. Manual testing and code review

Quality engineers review the build manually. If there are no concerns about code or functionality, this branch will be merged into the stable one.


Our customers are welcome to visit our GitLab instance at any time and track development process including code changes, CI pipelines, automatic review apps or any other development activity.


Need to Organize Professional Software Development?

We May Help

30

EUR / hour
  • Professional consultations of senior Odoo programmers on any code related questions



60

EUR / hour
  • Manual code analysis

  • Code optimization 

  500  EUR

 
  • Basic CI Setup    (500 EUR)
  • Using our infrastructure    (15 EUR / month)
  • Access to Odoo Packager   (15 EUR / month)