From amureini at redhat.com Sun Sep 29 12:23:28 2013 Content-Type: multipart/mixed; boundary="===============3895490006492477651==" MIME-Version: 1.0 From: Allon Mureinik To: infra at ovirt.org Subject: Re: Static analysis for oVirt Date: Sun, 29 Sep 2013 12:23:26 -0400 Message-ID: <1098283753.125390.1380471806325.JavaMail.root@redhat.com> In-Reply-To: CAKU0_rk0FEM2ttuwK3K7ruWUnG+qa5RwhV0g_qAM0H-3k__dcg@mail.gmail.com --===============3895490006492477651== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ------=3D_Part_125389_1744225563.1380471806324 Content-Type: text/plain; charset=3Dutf-8 Content-Transfer-Encoding: 7bit Hi Piotr, = Currently, we employ several static analysis tools in the various oVirt pro= jects. = In oVirt-Engine: = 1. We use checkstyle at build time with several standard checks, and a coup= le implemented by project members = 2. FindBugs is run by a Jenkins job: http://jenkins.ovirt.org/view/All/job/= ovirt_engine_find_bugs/ = 3. Animal Sniffer is used to ensure we don't break JDK6 compatibility on GW= T-compiled modules (should probably be removed since the last GWT upgrade, = BTW), also as a Jenkins job: http://jenkins.ovirt.org/job/ovirt_engine_anim= al_sniffer_check/ = 4. pylint is used to check the python parts: http://jenkins.ovirt.org/view/= ovirt_engine/job/ovirt_engine_pylint_gerrit/ = In VDSM, we use pep8 as part of the build. = Personally, I've heard about Sonar Qube, but never used it. = Can you share some experience? = How much "noise" does it produce? = -Allon = ----- Original Message ----- > From: "Piotr Kliczewski" > To: infra(a)ovirt.org > Sent: Sunday, September 29, 2013 7:00:58 PM > Subject: Static analysis for oVirt > All, > Is there static analysis tool used for oVirt code base? > There is interesting tool called Sonar: http://www.sonarqube.org/ . It > integrates with Jenkins and provides you neat dashboard that will let you > understand code quality. This tool supports many languages including Java > and Python. > Thanks, > Piotr Kliczewski > _______________________________________________ > Infra mailing list > Infra(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/infra ------=3D_Part_125389_1744225563.1380471806324 Content-Type: text/html; charset=3Dutf-8 Content-Transfer-Encoding: quoted-printable
Hi Piotr,

Currently, we employ several static analysis tools in the various oVirt = =3D projects.

In oVirt-Engine:
1. We use che= =3D ckstyle at build time with several standard checks, and a couple implemente= =3D d by project members
2. FindBugs is run by a Jenkins job: http://jenkins.ovirt.org/view/All/job/ovirt_engine_find_bugs/
3. Animal Sniffer is used to ensure we don't break JDK6 compatibility on= =3D GWT-compiled modules (should probably be removed since the last GWT upgrad= =3D e, BTW), also as a Jenkins job: http://jenkins.ovirt.org/job/o= =3D virt_engine_animal_sniffer_check/
4. pylint is used to check = =3D the python parts: http://jenkins.ovirt.o= =3D rg/view/ovirt_engine/job/ovirt_engine_pylint_gerrit/

In VDSM, we use pep8 as part of the build.

= =3D Personally, I've heard about Sonar Qube, but never used it.
Can y= =3D ou share some experience?
How much "noise" does it produce?
= =3D

-Allon


From: "Piotr Kliczew= =3D ski" <piotr.kliczewski(a)gmail.com>
To: infra(a)ovirt.orgSent: Sunday, September 29, 2013 7:00:58 PM
Subject: Static = =3D analysis for oVirt

All,

= Is there static analysis tool used for oVirt code base? 
= =3D
There is interesting tool called Sonar: http://www.sonarqube.org/. It int= eg=3D rates with Jenkins and provides you neat dashboard that will let you unders= =3D tand code quality. This tool supports many languages including Java and Pyt= =3D hon.

Thanks,
Piotr Kliczewski

_______________________________________________
Infra mailing listInfra(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/infra

------=3D_Part_125389_1744225563.1380471806324-- --===============3895490006492477651== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS0tLS0tPV9QYXJ0XzEyNTM4OV8xNzQ0MjI1NTYzLjEzODA0NzE4MDYzMjQKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdi aXQKCkhpIFBpb3RyLCAKCkN1cnJlbnRseSwgd2UgZW1wbG95IHNldmVyYWwgc3RhdGljIGFuYWx5 c2lzIHRvb2xzIGluIHRoZSB2YXJpb3VzIG9WaXJ0IHByb2plY3RzLiAKCkluIG9WaXJ0LUVuZ2lu ZTogCjEuIFdlIHVzZSBjaGVja3N0eWxlIGF0IGJ1aWxkIHRpbWUgd2l0aCBzZXZlcmFsIHN0YW5k YXJkIGNoZWNrcywgYW5kIGEgY291cGxlIGltcGxlbWVudGVkIGJ5IHByb2plY3QgbWVtYmVycyAK Mi4gRmluZEJ1Z3MgaXMgcnVuIGJ5IGEgSmVua2lucyBqb2I6IGh0dHA6Ly9qZW5raW5zLm92aXJ0 Lm9yZy92aWV3L0FsbC9qb2Ivb3ZpcnRfZW5naW5lX2ZpbmRfYnVncy8gCjMuIEFuaW1hbCBTbmlm ZmVyIGlzIHVzZWQgdG8gZW5zdXJlIHdlIGRvbid0IGJyZWFrIEpESzYgY29tcGF0aWJpbGl0eSBv biBHV1QtY29tcGlsZWQgbW9kdWxlcyAoc2hvdWxkIHByb2JhYmx5IGJlIHJlbW92ZWQgc2luY2Ug dGhlIGxhc3QgR1dUIHVwZ3JhZGUsIEJUVyksIGFsc28gYXMgYSBKZW5raW5zIGpvYjogaHR0cDov L2plbmtpbnMub3ZpcnQub3JnL2pvYi9vdmlydF9lbmdpbmVfYW5pbWFsX3NuaWZmZXJfY2hlY2sv IAo0LiBweWxpbnQgaXMgdXNlZCB0byBjaGVjayB0aGUgcHl0aG9uIHBhcnRzOiBodHRwOi8vamVu a2lucy5vdmlydC5vcmcvdmlldy9vdmlydF9lbmdpbmUvam9iL292aXJ0X2VuZ2luZV9weWxpbnRf Z2Vycml0LyAKCkluIFZEU00sIHdlIHVzZSBwZXA4IGFzIHBhcnQgb2YgdGhlIGJ1aWxkLiAKClBl cnNvbmFsbHksIEkndmUgaGVhcmQgYWJvdXQgU29uYXIgUXViZSwgYnV0IG5ldmVyIHVzZWQgaXQu IApDYW4geW91IHNoYXJlIHNvbWUgZXhwZXJpZW5jZT8gCkhvdyBtdWNoICJub2lzZSIgZG9lcyBp dCBwcm9kdWNlPyAKCi1BbGxvbiAKCi0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0KCj4gRnJv bTogIlBpb3RyIEtsaWN6ZXdza2kiIDxwaW90ci5rbGljemV3c2tpQGdtYWlsLmNvbT4KPiBUbzog aW5mcmFAb3ZpcnQub3JnCj4gU2VudDogU3VuZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTMgNzowMDo1 OCBQTQo+IFN1YmplY3Q6IFN0YXRpYyBhbmFseXNpcyBmb3Igb1ZpcnQKCj4gQWxsLAoKPiBJcyB0 aGVyZSBzdGF0aWMgYW5hbHlzaXMgdG9vbCB1c2VkIGZvciBvVmlydCBjb2RlIGJhc2U/Cgo+IFRo ZXJlIGlzIGludGVyZXN0aW5nIHRvb2wgY2FsbGVkIFNvbmFyOiBodHRwOi8vd3d3LnNvbmFycXVi ZS5vcmcvIC4gSXQKPiBpbnRlZ3JhdGVzIHdpdGggSmVua2lucyBhbmQgcHJvdmlkZXMgeW91IG5l YXQgZGFzaGJvYXJkIHRoYXQgd2lsbCBsZXQgeW91Cj4gdW5kZXJzdGFuZCBjb2RlIHF1YWxpdHku IFRoaXMgdG9vbCBzdXBwb3J0cyBtYW55IGxhbmd1YWdlcyBpbmNsdWRpbmcgSmF2YQo+IGFuZCBQ eXRob24uCgo+IFRoYW5rcywKPiBQaW90ciBLbGljemV3c2tpCgo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW5mcmEgbWFpbGluZyBsaXN0Cj4gSW5m cmFAb3ZpcnQub3JnCj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu ZnJhCgotLS0tLS09X1BhcnRfMTI1Mzg5XzE3NDQyMjU1NjMuMTM4MDQ3MTgwNjMyNApDb250ZW50 LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiBxdW90ZWQtcHJpbnRhYmxlCgo8aHRtbD48Ym9keT48ZGl2IHN0eWxlPTNEImZvbnQtZmFtaWx5 OiB0aW1lcyBuZXcgcm9tYW4sIG5ldyB5b3JrLCB0aW1lcywgc2U9CnJpZjsgZm9udC1zaXplOiAx MnB0OyBjb2xvcjogIzAwMDAwMCI+PGRpdj5IaSBQaW90ciw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZD0KaXY+Q3VycmVudGx5LCB3ZSBlbXBsb3kgc2V2ZXJhbCBzdGF0aWMgYW5hbHlzaXMgdG9vbHMg aW4gdGhlIHZhcmlvdXMgb1ZpcnQgPQpwcm9qZWN0cy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2 PkluIG9WaXJ0LUVuZ2luZTo8L2Rpdj48ZGl2PjEuIFdlIHVzZSBjaGU9CmNrc3R5bGUgYXQgYnVp bGQgdGltZSB3aXRoIHNldmVyYWwgc3RhbmRhcmQgY2hlY2tzLCBhbmQgYSBjb3VwbGUgaW1wbGVt ZW50ZT0KZCBieSBwcm9qZWN0IG1lbWJlcnM8L2Rpdj48ZGl2PjIuIEZpbmRCdWdzIGlzIHJ1biBi eSBhIEplbmtpbnMgam9iOiZuYnNwOzxhPQogaHJlZj0zRCJodHRwOi8vamVua2lucy5vdmlydC5v cmcvdmlldy9BbGwvam9iL292aXJ0X2VuZ2luZV9maW5kX2J1Z3MvIiBkYXQ9CmEtbWNlLWhyZWY9 M0QiaHR0cDovL2plbmtpbnMub3ZpcnQub3JnL3ZpZXcvQWxsL2pvYi9vdmlydF9lbmdpbmVfZmlu ZF9idWdzLz0KIj5odHRwOi8vamVua2lucy5vdmlydC5vcmcvdmlldy9BbGwvam9iL292aXJ0X2Vu Z2luZV9maW5kX2J1Z3MvPC9hPjwvZGl2PjxkPQppdj4zLiBBbmltYWwgU25pZmZlciBpcyB1c2Vk IHRvIGVuc3VyZSB3ZSBkb24ndCBicmVhayBKREs2IGNvbXBhdGliaWxpdHkgb249CiBHV1QtY29t cGlsZWQgbW9kdWxlcyAoc2hvdWxkIHByb2JhYmx5IGJlIHJlbW92ZWQgc2luY2UgdGhlIGxhc3Qg R1dUIHVwZ3JhZD0KZSwgQlRXKSwgYWxzbyBhcyBhIEplbmtpbnMgam9iOiZuYnNwOzxhIGhyZWY9 M0QiaHR0cDovL2plbmtpbnMub3ZpcnQub3JnL2pvPQpiL292aXJ0X2VuZ2luZV9hbmltYWxfc25p ZmZlcl9jaGVjay8iIGRhdGEtbWNlLWhyZWY9M0QiaHR0cDovL2plbmtpbnMub3ZpcnQ9Ci5vcmcv am9iL292aXJ0X2VuZ2luZV9hbmltYWxfc25pZmZlcl9jaGVjay8iPmh0dHA6Ly9qZW5raW5zLm92 aXJ0Lm9yZy9qb2Ivbz0KdmlydF9lbmdpbmVfYW5pbWFsX3NuaWZmZXJfY2hlY2svPC9hPjwvZGl2 PjxkaXY+NC4gcHlsaW50IGlzIHVzZWQgdG8gY2hlY2sgPQp0aGUgcHl0aG9uIHBhcnRzOiZuYnNw OzxhIGhyZWY9M0QiaHR0cDovL2plbmtpbnMub3ZpcnQub3JnL3ZpZXcvb3ZpcnRfZW5naW49CmUv am9iL292aXJ0X2VuZ2luZV9weWxpbnRfZ2Vycml0LyIgZGF0YS1tY2UtaHJlZj0zRCJodHRwOi8v amVua2lucy5vdmlydC5vcj0KZy92aWV3L292aXJ0X2VuZ2luZS9qb2Ivb3ZpcnRfZW5naW5lX3B5 bGludF9nZXJyaXQvIj5odHRwOi8vamVua2lucy5vdmlydC5vPQpyZy92aWV3L292aXJ0X2VuZ2lu ZS9qb2Ivb3ZpcnRfZW5naW5lX3B5bGludF9nZXJyaXQvPC9hPjwvZGl2PjxkaXY+PGJyPjwvZGk9 CnY+PGRpdj5JbiBWRFNNLCB3ZSB1c2UgcGVwOCBhcyBwYXJ0IG9mIHRoZSBidWlsZC48L2Rpdj48 ZGl2Pjxicj48L2Rpdj48ZGl2Pj0KUGVyc29uYWxseSwgSSd2ZSBoZWFyZCBhYm91dCBTb25hciBR dWJlLCBidXQgbmV2ZXIgdXNlZCBpdC48L2Rpdj48ZGl2PkNhbiB5PQpvdSBzaGFyZSBzb21lIGV4 cGVyaWVuY2U/PC9kaXY+PGRpdj5Ib3cgbXVjaCAibm9pc2UiIGRvZXMgaXQgcHJvZHVjZT88L2Rp dj49CjxkaXY+PGJyPjwvZGl2PjxkaXY+LUFsbG9uPC9kaXY+PGRpdj48YnI+PC9kaXY+PGhyIGlk PTNEInp3Y2hyIj48YmxvY2txdW90ZT0KIHN0eWxlPTNEImJvcmRlci1sZWZ0OjJweCBzb2xpZCAj MTAxMEZGO21hcmdpbi1sZWZ0OjVweDtwYWRkaW5nLWxlZnQ6NXB4O2NvPQpsb3I6IzAwMDtmb250 LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9u dC1mYW09CmlseTpIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTJwdDsiPjxi PkZyb206IDwvYj4iUGlvdHIgS2xpY3pldz0Kc2tpIiAmbHQ7cGlvdHIua2xpY3pld3NraUBnbWFp bC5jb20mZ3Q7PGJyPjxiPlRvOiA8L2I+aW5mcmFAb3ZpcnQub3JnPGJyPjxiPQo+U2VudDogPC9i PlN1bmRheSwgU2VwdGVtYmVyIDI5LCAyMDEzIDc6MDA6NTggUE08YnI+PGI+U3ViamVjdDogPC9i PlN0YXRpYyA9CmFuYWx5c2lzIGZvciBvVmlydDxicj48ZGl2Pjxicj48L2Rpdj48ZGl2IGRpcj0z RCJsdHIiPkFsbCw8ZGl2Pjxicj48L2Rpdj48ZD0KaXY+SXMgdGhlcmUgc3RhdGljIGFuYWx5c2lz IHRvb2wgdXNlZCBmb3Igb1ZpcnQgY29kZSBiYXNlPyZuYnNwOzwvZGl2PjxkaXY+PQo8YnI+PC9k aXY+PGRpdj5UaGVyZSBpcyBpbnRlcmVzdGluZyB0b29sIGNhbGxlZCBTb25hcjogPGEgaHJlZj0z RCJodHRwOi8vd3c9Cncuc29uYXJxdWJlLm9yZy8iIHRhcmdldD0zRCJfYmxhbmsiPmh0dHA6Ly93 d3cuc29uYXJxdWJlLm9yZy88L2E+LiBJdCBpbnRlZz0KcmF0ZXMgd2l0aCBKZW5raW5zIGFuZCBw cm92aWRlcyB5b3UgbmVhdCBkYXNoYm9hcmQgdGhhdCB3aWxsIGxldCB5b3UgdW5kZXJzPQp0YW5k IGNvZGUgcXVhbGl0eS4gVGhpcyB0b29sIHN1cHBvcnRzIG1hbnkgbGFuZ3VhZ2VzIGluY2x1ZGlu ZyBKYXZhIGFuZCBQeXQ9Cmhvbi48L2Rpdj4KPGRpdj48YnI+PC9kaXY+PGRpdj5UaGFua3MsPC9k aXY+PGRpdj5QaW90ciBLbGljemV3c2tpPC9kaXY+PC9kaXY+Cjxicj5fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxicj5JbmZyYSBtYWlsaW5nIGxpc3Q8Yj0K cj5JbmZyYUBvdmlydC5vcmc8YnI+aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2luZnJhPGJyPjwvYmxvPQpja3F1b3RlPjxkaXY+PGJyPjwvZGl2PjwvZGl2PjwvYm9keT48 L2h0bWw+Ci0tLS0tLT1fUGFydF8xMjUzODlfMTc0NDIyNTU2My4xMzgwNDcxODA2MzI0LS0K --===============3895490006492477651==--