Contributors mailing list archives

Project for special dynamic checks of maintainer-quality-tools

Vauxoo, Moisés López Calderón
- 07/08/2016 20:48:24
We have modules that are useful forOCA/Maintainer-Quality-Tools (MQT) project.

Demo xml_id referenced from data xml (odoolint module)

If we have a "data/data.xml" where a ref="demo_xml_id" is used then will emit a warning.
Our CI has a false green because we have installed with all demo.

If you install the module with param "--without-demo=all" will fails with we have the error "External ID not found in the system"

xml_id unreachable (odoolint module)

We have cases where if you install a module without other ones will fail because we don't have a dependency added it.

I have detected a case running odoolint module on OCA/l10n-spain:
INFO openerp_test openerp.modules.loading: loading l10n_es_aeat_mod216/views/res_partner_view.xml
WARNING openerp_test openerp.addons.odoolint.models.ir_model_data: The xml_id 'base_vat.view_partner_form' is unreachable.

And using ~/odoo-8.0/ -i l10n_es_aeat_mod216 on new database empty.

We have the error "External ID not found in the system"

But our CI has a false green because we don't have installed one-by-one.

Method too slow (odoo-profiler)

We can get a profiler report of the methods of the project to get information of the top slow methods define in our project see image

This is useful to detect performance issues early.

If we have a method that is invoked many times or spent many time we can detect them in each PR with this module.

SQL sentence too slow (runbot dockerized is required)

Note: This change isn't posible added to travis because travis-ci#5784
But with a environment isolated (like as runbot dockerized) is posible.

We can get a pgbadger stats to detect slow queries or queries invoked many times, see image

This is useful to detect performance issues early.

* Conclusion
We could use OCA/server-tools but there are other ones what MQT don't use, then download all them just to use 4 ones is too slow to manage all builds of OCA.

Well, we could use MQT project, but this project use a branch master and we require define a branch 7.0, 8.0, 9.0, master... ones to work fine with each version of odoo (like as a normal project of odoo modules)

My proposal is to create a new project for manage this type of modules (I don't know maybe calling it "QA" modules).

What do you think?

Moisés López Calderón
Vauxoo - OpenERP's Gold Partner
Mobile: (+521) 477-752-22-30
Office: (+52) 477-773-33-46
twitter: @vauxoo