08:00:46 <jose_lausuch> #startmeeting Functest weekly meeting April 11th 2017
08:00:46 <collabot`> Meeting started Tue Apr 11 08:00:46 2017 UTC.  The chair is jose_lausuch. Information about MeetBot at http://wiki.debian.org/MeetBot.
08:00:46 <collabot`> Useful Commands: #action #agreed #help #info #idea #link #topic.
08:00:46 <collabot`> The meeting name has been set to 'functest_weekly_meeting_april_11th_2017'
08:00:54 <jose_lausuch> #topic role call
08:00:58 <jose_lausuch> #info Jose Lausuch
08:01:00 <viktor_t> #info Viktor Tikkanen
08:01:10 <SerenaFeng> #info SerenaFeng
08:01:12 <Shuya_OOL> #info Shuya(OOL)
08:01:16 <jose_lausuch> #info agenda: https://wiki.opnfv.org/display/functest/Functest+Meeting#FunctestMeeting-11/04(8UTC)
08:01:18 <hideyasu> #info Hideyasu (OOL)
08:01:29 <ollivier> #info Cédric
08:01:29 <jose_lausuch> viktor_t: long time no see!!
08:01:36 <LindaWang> #info Linda Wang
08:01:44 <HelenYao> #info Helen Yao
08:02:31 <jose_lausuch> #topic Action point follow-up
08:03:06 <jose_lausuch> I see I got several APs :)
08:03:13 <jose_lausuch> didn't have time to work on them... sorry
08:03:18 <jose_lausuch> #action jose_lausuch plan a slot for this topic during the Hackfest in Paris
08:03:31 <jose_lausuch> #action jose_lausuch propose demo for the hackfest about the available tooling in releng
08:03:38 <jose_lausuch> #action jose_lausuch review https://gerrit.opnfv.org/gerrit/#/c/32083/ and associate patches (32083 impacting all the feature projects..need to be merged to avoid too many rebasing)
08:04:01 <ollivier> And https://gerrit.opnfv.org/gerrit/#/c/33195/ too
08:04:19 <jose_lausuch> I think I will have time to look at gerrit today
08:04:36 <jose_lausuch> SerenaFeng plans a short slide deck for the meeting planned on the 12th (could be reused for the plugfest)
08:04:48 <jose_lausuch> SerenaFeng: what meeting?
08:04:55 <ollivier> Any testing result is welcome as our code is not fully covered
08:04:56 <SerenaFeng> I don't know
08:05:08 <SerenaFeng> ollivier do you know that?
08:05:21 <ollivier> ?
08:05:33 <SerenaFeng> I didn't show up on last weekly meeting due to QingMing Vocation in China
08:05:49 <ollivier> I know we have to speak together about status codes...
08:06:01 <SerenaFeng> ollivier: SerenaFeng plans a short slide deck for the meeting planned on the 12th (could be reused for the plugfest)
08:06:03 <SerenaFeng> this one
08:06:13 <ollivier> I don't remember anything about a meeting...
08:06:23 <jose_lausuch> ok
08:06:27 <SerenaFeng> ok
08:06:30 <jose_lausuch> I don't see anything in the minutes...
08:06:48 <jose_lausuch> ok, anyway
08:07:05 <jose_lausuch> all complete Functest postmortem (what was ++, +, - or --)
08:07:11 <jose_lausuch> I haven't had a look yet
08:07:14 <jose_lausuch> #action all complete Functest postmortem (what was ++, +, - or --)
08:07:44 <jose_lausuch> #link https://etherpad.opnfv.org/p/FunctestDanubePostMortem
08:08:11 <jose_lausuch> ALL review Functest Euphrates page
08:08:19 <jose_lausuch> I think there are some additions in that page
08:08:24 <jose_lausuch> I've seen some emails around
08:08:29 <jose_lausuch> we have to talk about it now anyway
08:09:35 <jose_lausuch> what do you want to do guys, to spend some time in the issues we have or to talk about euphrates?
08:09:57 <ollivier> we could aso review https://wiki.opnfv.org/display/functest/Review+checkpoints
08:10:23 <jose_lausuch> yes
08:10:41 <jose_lausuch> then, let's do it
08:10:48 <jose_lausuch> #topic Review checkpoints
08:10:55 <jose_lausuch> #link https://wiki.opnfv.org/display/functest/Review+checkpoints
08:11:51 <jose_lausuch> do we all agree on the content of this wiki?
08:12:26 <HelenYao> For this line -> the review must not break the unit test results or hugely decrease the coverage trend (-2%), how to calculate the 2%? There is a patch by Ashish which is setting the line decreasing as 10
08:12:51 <HelenYao> https://gerrit.opnfv.org/gerrit/#/c/32763/
08:13:11 <ollivier> 2% or 10% is ok. But we have to list all functest modules
08:13:14 <HelenYao> if we all agree with the -2%,the patch needs to be changed
08:13:37 <HelenYao> it's 10 lines, not 10%
08:14:09 <ollivier> The most important point is "a review fixing a bug should add the related unit tests"
08:14:20 <HelenYao> yes. I totally agree
08:14:34 <SerenaFeng> will -2% be detected by jenkins?
08:14:50 <SerenaFeng> if so I agree
08:14:52 <ollivier> Maybe 2% is too short to vote -1
08:14:58 <HelenYao> if the number is not fixed, I would put it as e.g. -2%
08:15:35 <SerenaFeng> I think the point is jenkins can provide that decrease threshold for us
08:15:44 <HelenYao> SerenaFeng: there is some changed needed for jenkins to detect the line change with the help of Ashish's patch
08:15:46 <SerenaFeng> it is difficult to do it manually
08:15:53 <ollivier> But 2% is too much if the code was previously fully covered 100%...
08:16:02 <jose_lausuch> if it's 2% or 10% it doesn't matter, I think, no need to be strick to those numbers, the important thing is that it doesn't decrease the coverage hugely...
08:16:22 <SerenaFeng> jose_lausuch, I agree
08:16:35 <jose_lausuch> how can we detect exactly what is the coverage decrease of a certain patch?
08:16:35 <ollivier> We could list all the modules (even if not covered) and set to 10% and let see
08:16:38 <HelenYao> if we want to add the CI gating, the number is ought to be decided in the near future
08:16:43 <SerenaFeng> the number itself is doesn't matter
08:17:14 <ollivier> agree. The most important is adding unit test for every bug and new features...
08:17:20 <SerenaFeng> agree
08:17:24 <jose_lausuch> yep
08:17:32 <HelenYao> i think it's a two-step decision, 1. agree with the CI gating 2. agree with the coverage rate
08:17:42 <jose_lausuch> remove the -2% to avoid confusion?
08:17:45 <ollivier> 1/ Agree 2/  10?
08:17:46 <HelenYao> i totally agree with the gating
08:18:46 <ollivier> But we have to update the review to list all functest modules and to check why several are not covered at all (as features).
08:19:21 <jose_lausuch> ollivier: you mean in the jjob ?
08:19:29 <ollivier> no by PTL
08:19:30 <SerenaFeng> because unittest is not required at that time
08:19:37 <ollivier> agree.
08:19:53 <SerenaFeng> so there's no unit test covered for feature
08:20:05 <ollivier> But we have to know where functest could fail.
08:21:17 <jose_lausuch> besides features, is there any other module which is not covered?
08:21:21 <ollivier> I don't care about the past mistakes. I think we must now cover the remaining part.
08:22:02 <ollivier> For features, it was quite simple to cover and I could have helped if I knew them.
08:22:31 <HelenYao> the reason why there is no unit test for feature is, the code is simply __init__
08:22:32 <ollivier> run_unit_tests.sh must list all the functest modules
08:23:11 <ollivier> Yes. But Serena raised a bug on my review which could be easily covered by UT.
08:23:27 <ollivier> Just be testing constructors.
08:23:30 <ollivier> by
08:23:54 <jose_lausuch> ok, no blame to anyone
08:24:01 <jose_lausuch> let's cover everything from now on
08:24:04 <SerenaFeng> ok,my apology for not adding unittest
08:24:08 <ollivier> no it's not.
08:24:24 <ollivier> That's not the purpose of my sentences.
08:25:00 <ollivier> We have to know where we should add unit tests. That's my point.
08:25:12 <jose_lausuch> I agree
08:25:14 <jose_lausuch> so
08:25:15 <jose_lausuch> besides features
08:25:16 <ollivier> Even the simple unit tests are relevant
08:25:18 <jose_lausuch> is there any thing?
08:25:22 <jose_lausuch> have you detected any other area?
08:25:50 <ollivier> No.
08:25:56 <HelenYao> constants.py
08:26:09 <ollivier> SerenaFeng: Don't worry. Thank you to raise the constructor issues.
08:27:20 <SerenaFeng> ollivier: agree we cannot ignore unit test because it is simple
08:27:31 <jose_lausuch> ok
08:27:35 <jose_lausuch> going back to the review checkpoints
08:27:46 <jose_lausuch> unix permissions
08:27:49 <jose_lausuch> I think that's clear
08:27:55 <HelenYao> recalling my last comment - I just checked the constants.py and it's 100% covered
08:27:59 <jose_lausuch> OPNFV Functest programming rules?
08:28:48 <ollivier> We mainly follow OpenStack rules. I will be great to run pylint too.
08:29:20 <jose_lausuch> ollivier: I think we can create a job for pylint
08:29:47 <SerenaFeng> if pylint is used, I high suggest to leverage jjb to do the check
08:29:48 <jose_lausuch> we use this for pep8 https://git.opnfv.org/releng/tree/jjb/releng/opnfv-lint.yml
08:29:52 <ollivier> Yes but it must be seen as an helper. No need to vote -1 if pylint sore is too low
08:29:58 <jose_lausuch> SerenaFeng: yes, that is the point
08:30:12 <SerenaFeng> manual work can not be guaranteed
08:30:15 <jose_lausuch> ollivier: you have run pylint over the whole functest code?
08:31:08 <ollivier> 10/10 on ODL, TestCase and Features (last reviews). I don't check everything.
08:31:30 <ollivier> It will be great if everyone uses it to increase the quality.
08:31:51 <ollivier> Some checks could be disabled as I did
08:32:24 <jose_lausuch> shall we take the AO to create a jjob?
08:32:37 <ollivier> AO? AP?
08:32:42 <jose_lausuch> AP sorry
08:33:14 <SerenaFeng> agree to create only after all modules in Functest have done it
08:33:23 <ollivier> Sure as coverage it could help.
08:33:36 <SerenaFeng> I'm afraid currently only ODL will pass
08:33:47 <jose_lausuch> yes, but if we don't vote -1 for that job it's ok
08:33:50 <ollivier> Again. It must be seen as an helper
08:34:26 <ollivier> Try to increase the score, that's all.
08:34:29 <HelenYao> +1
08:34:37 <jose_lausuch> I will ask opnfv helpdesk
08:34:39 <jose_lausuch> to do that
08:34:44 <HelenYao> for the commit msg, I thought the JIRA link is right after the first line of brief description. In the wiki, it says the JIRA is at the very end. How do you think?
08:35:04 <ollivier> For instance docstrings are required only for external (internal) API
08:35:24 <jose_lausuch> well, at the beginning I said the second line, but it really doesn't matter as long as you put it
08:35:30 <ollivier> JIRA must be at the end
08:35:42 <jose_lausuch> what's important is "subsequent lines should be wrapped at 72 characters"
08:35:52 <jose_lausuch> we should keep tidy commit messages
08:36:04 <jose_lausuch> let's agree on put JIRA at the end
08:36:12 <jose_lausuch> it's also according to openstack rules
08:36:34 <LindaWang> ollivier:  the hyperlink of " OpenStack Git Commit Good Practice" is not assesible for me.
08:36:53 <ollivier> True. I am fixing it
08:37:32 <ollivier> LindaWang: https://wiki.openstack.org/wiki/GitCommitMessages
08:37:41 <jose_lausuch> I would put an example of good commit message
08:39:03 <ollivier> please see "fold"
08:39:34 <jose_lausuch> fold?
08:40:47 <viktor_t> jose_lausuch: Agree, an example visualizes rules in a compact form
08:41:07 <ollivier> fold - wrap each input line to fit in specified width
08:41:13 <ollivier> (man fold)
08:41:28 <jose_lausuch> ah ok
08:41:36 <ollivier> fold -w 72 -s .git/COMMIT_EDITMSG
08:41:39 <jose_lausuch> ollivier: will you add an example?
08:41:48 <ollivier> jose_lausuch: yes
08:41:51 <jose_lausuch> thanks
08:42:00 <jose_lausuch> commit message section is clear
08:42:04 <jose_lausuch> programming guidelines
08:42:16 <jose_lausuch> #action ollivier add example of good commit message
08:42:17 <ollivier> LindaWang: fixed. Thank you
08:42:32 <LindaWang> :) i
08:42:54 <jose_lausuch> I agree with everything basically
08:43:06 <jose_lausuch> can you explain
08:43:06 <jose_lausuch> we prefer python methods (e.g. those defined in os library) to bash commands called via os.system()
08:43:47 <SerenaFeng> how about using subprocess?
08:44:02 <SerenaFeng> I think the information provided by os.system() is quite few
08:45:14 <ollivier> What's the purpose of calling cd in synstem
08:45:38 <ollivier> via os.system()?
08:45:55 <ollivier> or to parse output via grep.
08:47:07 <ollivier> They are python librairies designed for that.
08:47:07 <jose_lausuch> you mean what we were doing in features
08:47:11 <SerenaFeng> because some feature tests implemented in shell
08:47:18 <jose_lausuch> cd DIR && bash whatever
08:47:49 <SerenaFeng> and they require the scripts to be executed within that directory
08:47:55 <ollivier> I agree calling bash script offered by 3rd party. But changing dir via os.system is strenge
08:48:25 <ollivier> I think there are issues in utils too.
08:48:27 <jose_lausuch> we should call os. call with the appropriate directory
08:49:56 <ollivier> cd is just an exemple.
08:49:59 <jose_lausuch> more questions about this topic?
08:50:14 <SerenaFeng> and within os.system() it will not impact Functest itself
08:50:58 <ollivier> please see ./functest/opnfv_tests/sdn/onos/teston/adapters/foundation.py
08:51:06 <ollivier> cmd = "cat " + self.logfilepath + " | grep Fail"
08:51:29 <ollivier> about switching to a python way
08:52:03 <ollivier> output = os.popen('cat /root/.ssh/id_rsa.pub')
08:52:19 <jose_lausuch> we can probably work on that to make it more pythonized
08:52:30 <ollivier> Again I don't blame anyone. They are just examples...
08:53:41 <jose_lausuch> so
08:53:43 <jose_lausuch> unix permissions
08:53:47 <jose_lausuch> I think it's clear too
08:54:39 <SerenaFeng> again suggest to add jjb to detact it
08:55:15 <SerenaFeng> any restriction should be promised by jenkins
08:55:27 <jose_lausuch> to check the permissions?
08:55:46 <SerenaFeng> yes, if we want to make restriction on that
08:55:53 <SerenaFeng> manual work is not reliable
08:56:07 <jose_lausuch> yes, good idea
08:56:20 <ollivier> Agree. It's quite hard to detect unix permissions for the author or the reviewers.
08:56:27 <jose_lausuch> #action jose_lausuch propose 2 new gating jobs: pylint and unix permissions
08:56:52 <SerenaFeng> we can not submit patches to change unit permissions all the time
08:57:50 <ollivier> Jenkins could vote -1 for this point (as pep8), it will help the author as well
08:58:25 <jose_lausuch> yes
08:58:29 <jose_lausuch> ok
08:58:36 <jose_lausuch> we ran out of time, but we had good discussions
08:58:42 <jose_lausuch> what about voting -1 -2 ?
08:59:09 <SerenaFeng> I should say Functest is so harsh now, much more harsh than OpenStack
08:59:33 <ollivier> I don't think so :)
08:59:57 <HelenYao> so long as the rule is clear, I think members will obey the rules
09:00:09 <jose_lausuch> all the software projects go like this when they get mature
09:00:13 <jose_lausuch> and it's good
09:00:17 <jose_lausuch> to follow some guidelines
09:00:20 <jose_lausuch> to improve quality
09:00:32 <jose_lausuch> ollivier: will you add something about when to vote -1 and when to vote -2 ?
09:00:42 <ollivier> I did.
09:00:51 <HelenYao> adding examples for the rules will help the readers better understand the rules
09:00:57 <ollivier> I think -2 should be used when 2 core diagree.
09:01:00 <jose_lausuch> ollivier: sorry, didn't see it
09:01:28 <jose_lausuch> for example, if I see that something is really wrong, can I vote -2 ?
09:02:08 <ollivier> I would say yes if the change must be stopped as it's fully false.
09:02:31 <jose_lausuch> ok
09:02:35 <jose_lausuch> good
09:02:41 <ollivier> Normally you could vote -2 if the vote is already +2
09:02:50 <jose_lausuch> ok
09:02:51 <jose_lausuch> we will talk about Euphrates next week
09:02:57 <jose_lausuch> who is coming to the hackfest?
09:03:13 <ollivier> For this point I voted -1 and sometimes the change was merged anyway :)
09:03:28 <viktor_t> juhak is coming there
09:03:40 <jose_lausuch> ok
09:03:52 <jose_lausuch> SerenaFeng: I know you are coming
09:03:54 <jose_lausuch> HelenYao: ?
09:03:59 <SerenaFeng> yes
09:04:07 <HelenYao> no:(
09:04:37 <SerenaFeng> I am preparing for the TestAPI presentation
09:05:01 <jose_lausuch> HelenYao: ok, so we can still discuss our E-release plan next week so you can still give your input
09:05:08 <jose_lausuch> SerenaFeng: I will put a slot in the agenda
09:05:18 <HelenYao> that is great
09:05:25 <SerenaFeng> okey, that would be great
09:06:29 <jose_lausuch> good
09:06:30 <jose_lausuch> thanks
09:06:32 <jose_lausuch> #endmeeting