Hello,

I agree with the whole, and just want to add 2 things:
1) for the assignments: it can be difficult for outside developers (like me).
2) for the tests, we should have unitary tests, but also integration tests , 
and at least functional tests. And for me these functional tests should be 
documented by the developer (or tester) as they are mainly done manually.

Regards,
Tomolimo 

-----Original Message-----
From: Glpi-dev [mailto:glpi-dev-boun...@gna.org] On Behalf Of Johan Cwiklinski
Sent: Wednesday, September 07, 2016 11:39 AM
To: Liste de diffusion des developpeurs GLPI
Subject: Re: [Glpi-dev] Modify coding methods to enhance code quality

Hello,

----- Mail original -----
> De: "David DURIEUX" <d.duri...@siprossii.com>
> À: "Liste de diffusion des developpeurs GLPI" <glpi-dev@gna.org>
> Envoyé: Mercredi 7 Septembre 2016 11:16:46
> Objet: [Glpi-dev] Modify coding methods to enhance code quality
> 
> Hello,
> 
> I propose new coding methods to enhance GLPI (better code, have
> tests, so less bugs):
> 
> * NEVER (so no exceptions) commit directly in the repository, always
>   create Pull Requests

I agree with that.

> * All Pull Request must be linked with an issue (bugs, features...)

Agree.

> * All issues for features must be discussed and so made specification
>   of what to do in the issue, with that, the developer will win time
>   when will code it. The developer must be assigned to the issue

Agree.

> * All Pull Requests must be reviewed by another developer, this review
>   is needed and check these points:
>    * Check the code, if it's coherent with the issue, coding standards
>    * check if there are enough tests (unit, integration). So a Pull
>      Request NEED HAVE tests, if no test, refure merge and add comment
>      in it
>    * verify travis (run tests in travis-ci.org) pass

Agree, but disagree (on the tests part) :p

We should probably have tests on new features, but when it is actually 
possible; if we need to refactor some other (big) parts of code to get tests 
running, this is probably not a good idea ; and for bugfixes, we probably 
cannot ask the developper to spend all the required time to write all tests on 
some cases.

At the end, this rule will really become a MUST, but I'm not sure it is 
possible right now (talking about exeprience on some other projets where some 
parts of the code cannot be unit tested by design - or mistakes). I can be 
wrong, I'm quite new to the project ;)

On the basics, I totally agree, but maybe should we consider merging without 
tests would be possible with a (really!) good reason for now?
Of course, existing unit tests MUST be OK, in any case.

I'd like to add that developper that will take review MUST assign him/herself 
to the PR.

> * Once the PR is reviewed and all is OK, merge it. You DON'T MERGE for
>   the developper pleasure, you merge because you think it's good for
>   GLPI and code is good quality.

Agree.

> So yes, you think you will loose time, but if you have less bugs to fix
> after because it's verified by unit tests, you win time ;)
> 
> Another point, for the release it will be better, you can release
> directly or perhaps have one RC. Release process is more simple and
> you can release when you want with these methods.
> 
> I will do that in many projects (with big code and very few developers)
> and we win time, quality of code.

Review process and automated tests are really a must have; I can't disagree 
with that :)

We'll also have to write a (clear and quite simple) page explaining the whole 
process, for everyone reference.

Just my two cents,
++
-- 
Johan

_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev
_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to