15:01:21 <mfedosin> #startmeeting glare
15:01:22 <openstack> Meeting started Tue May  9 15:01:21 2017 UTC and is due to finish in 60 minutes.  The chair is mfedosin. Information about MeetBot at http://wiki.debian.org/MeetBot.
15:01:23 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
15:01:25 <openstack> The meeting name has been set to 'glare'
15:02:18 <mfedosin> #topic agenda
15:02:32 <mfedosin> #link https://etherpad.openstack.org/p/glare-meeting-agenda
15:03:16 <mfedosin> inarotzk: Idan, is it you? :)
15:03:28 <inarotzk> yep, hello :)
15:03:35 <mfedosin> hi!
15:03:43 <mfedosin> let's begin then
15:03:52 <mfedosin> #topic Updates
15:04:11 <mfedosin> let me quickly describe my latest updates
15:04:32 <mfedosin> inarotzk and then we can talk about yours :)
15:04:56 <inarotzk> Great
15:05:10 <mfedosin> so, 2 documentation units were merged yesterday
15:05:28 <mfedosin> basic architecture and client setup
15:05:42 <mfedosin> then I implemented several new tests
15:06:00 <mfedosin> we will discuss it in next topic
15:06:17 <mfedosin> also I updated glare docker image
15:06:36 <mfedosin> and now you can inject your code inside the container
15:06:51 <mfedosin> #link https://github.com/Fedosin/docker-glare
15:07:15 <mfedosin> and image in docker hub is called "mfedosin/openstack-glare"
15:07:37 <mfedosin> finally I implemented a small feature yesterday...
15:07:53 <mfedosin> it was kinda a technical debt from my side
15:08:20 <mfedosin> it is 'in' operator for 'version' filtering
15:08:50 <inarotzk> Can you elaborate?
15:08:54 <mfedosin> sure
15:09:11 <mfedosin> for version we support all possible operators
15:10:02 <mfedosin> for instance, if you want to get all artifacts with version greater than 2, then you provide filter: version=gt:2
15:10:29 <mfedosin> the same story for lt, eq, neq and so on
15:10:46 <mfedosin> but 'in' operator led to 500 error :(
15:11:42 <mfedosin> if you want to send request like "give me all artifacts with version 1 *or* 2", then you send it as: version=in:1,2
15:12:09 <inarotzk> nice !
15:12:45 <mfedosin> coercing works for this filter too
15:13:12 <mfedosin> version=in:1.0.0,2.0.0 and version=in:1,2 are the same
15:13:37 <mfedosin> probably that's all from my side
15:13:38 <inarotzk> That's the meaning of coercing? (your example above)
15:14:26 <mfedosin> yes, canonical format for version is "a.b.c-meta"
15:14:47 <mfedosin> where a, b and c some numbers
15:15:09 <mfedosin> but user can omit them if they are zeros
15:15:27 <inarotzk> I understand
15:15:37 <mfedosin> so, 2-rc1 will be converted to 2.0.0-rc1 on server side
15:15:57 <mfedosin> and user doesn't need to bother about it
15:16:35 <mfedosin> inarotzk: do you have any questions?
15:17:06 <inarotzk> not on this topic :)
15:17:15 <mfedosin> all right :)
15:17:25 <inarotzk> should i update?
15:17:30 <mfedosin> do you have any updates then?
15:17:36 <mfedosin> yes, you're welcome
15:18:13 <inarotzk> Yes, I wrote unit tests for sorting - https://review.openstack.org/463564
15:18:45 <mfedosin> amazing! I'll review them today
15:19:01 <inarotzk> While i did not, few question popped up
15:19:30 <inarotzk> *while i did so
15:20:03 <mfedosin> probably we will be able to discuss them during next topic...
15:20:16 <mfedosin> do you have any other updates?
15:20:32 <inarotzk> no
15:21:04 <mfedosin> okay
15:21:17 <mfedosin> #topic Unit tests and coverage
15:21:48 <mfedosin> let me provide quick information about our status...
15:22:04 <mfedosin> and then we will discuss your questions
15:22:27 <inarotzk> cool
15:22:52 <mfedosin> so, as I mentioned at last meeting we have a good coverage by functional tests
15:23:07 <mfedosin> but it's hard to measure this coverage
15:23:32 <mfedosin> and so we decided to begin this initiative
15:23:42 <mfedosin> and implement a lot of unit tests
15:24:46 <mfedosin> current coverage is near 69% which is not really bad, but definitely we can do better
15:25:17 <mfedosin> it's after the exclusion of glare.tests folder
15:25:27 <inarotzk> Can you remind me, how can we check the coverage? some command with tox?
15:25:50 <mfedosin> if we include it in the coverage then results will be much higher, over 80%
15:26:08 <mfedosin> yes, the simplest way is tox
15:26:18 <mfedosin> command is: tox -e cover
15:26:42 <mfedosin> it will generate a detailed report and place it in cover folder
15:27:10 <mfedosin> since it's html you can view it in a webbrowser
15:28:01 <mfedosin> my ideal plan is to make the coverage about 90%
15:28:10 <mfedosin> which is hard but doable
15:29:10 <mfedosin> we have 2 big items without unit tests now: upload/download and common utils
15:29:26 <inarotzk> I'll be glad to take it
15:29:28 <mfedosin> if we add tests for them we will get more then 80
15:30:01 <mfedosin> *than
15:30:28 <mfedosin> inarotzk: you can take common utils
15:30:37 <mfedosin> and I'll do upload/download
15:30:50 <mfedosin> I'll give you several examples on the matter
15:30:58 <mfedosin> after this meeting
15:31:39 <inarotzk> cool
15:31:52 <mfedosin> but generally speaking I'm talking about this functions: https://github.com/openstack/glare/blob/master/glare/common/utils.py
15:32:30 <mfedosin> if you build the report you will see big amount of red lines in this file
15:33:16 <mfedosin> okay, so we have an action for Idan:
15:33:55 <mfedosin> #action (inarotzk): implement unit tests for common utils
15:34:02 <mfedosin> and an action for me
15:34:29 <mfedosin> #action (mfedosin): implement unit tests for upload/download of blobs
15:34:56 <mfedosin> and of course a global action:
15:35:26 <mfedosin> #action increase test coverage up to 90% from the existing 69%
15:35:49 <mfedosin> inarotzk: you wanted to ask questions...
15:36:42 <inarotzk> yep , but they aren't really related to unit tests. Is it good time?
15:37:39 <mfedosin> What do they related to?
15:38:14 <inarotzk> Sorting operation and glare schema
15:38:30 <mfedosin> no, it's fine to discuss it here
15:38:39 <mfedosin> since you wrote unit tests for them
15:38:42 <mfedosin> shoot :)
15:39:21 <inarotzk> :)  Sorting: Do we support 'secondary' sorting?
15:39:38 <mfedosin> yes
15:40:06 <mfedosin> sort=name:asc,version:desc,id:desc
15:40:07 <inarotzk> and also for third, fourth etc ?
15:40:13 <mfedosin> yes
15:40:49 <mfedosin> it's comma separated list of artifact fields with optional sorting order
15:41:01 <mfedosin> default one is desc
15:41:14 <inarotzk> Ok, So maybe i should unit tests add for those scenarios :)
15:41:17 <mfedosin> so, sort=name and sort=name:desc are the same
15:41:39 <mfedosin> indeed! it will be awesome to have those tests
15:42:20 <inarotzk> In glare schema: visibility has 2 options , as i understood. In ns_packages for example,
15:42:48 <inarotzk> in the column available_values, i didn
15:43:15 <mfedosin> what do you mean?
15:43:16 <inarotzk> i didn't see those 2 options  for visibility, and i think it might be good to add those
15:43:36 <mfedosin> yes, visibility has two possible options now
15:43:44 <mfedosin> 'private' and 'public'
15:44:05 <mfedosin> but afaiu it's included in the schema
15:44:15 <mfedosin> let me check quickly
15:45:01 <inarotzk> If i do glare schema ns_packages, i would expect to see in the row of visibility in the column of available_values:  {'private', 'public'} but it's empty
15:45:11 <mfedosin> inarotzk: you are right
15:45:20 <mfedosin> it's not
15:46:06 <mfedosin> let's include it then! it will be good
15:46:24 <inarotzk> It might be a good opportunity for me to do it, and learn more by doing so
15:46:24 <mfedosin> but, schemas are generated automatically
15:46:56 <mfedosin> you just need to add appropriate validator to 'visibility' field in Base artifact type
15:47:27 <mfedosin> okay, I'll help you on this
15:47:36 <inarotzk> Thank you
15:48:02 <mfedosin> #action (inarotzk) define available values for 'visibility' field
15:48:26 <mfedosin> inarotzk: anything else?
15:48:44 <inarotzk> No, thanks
15:49:17 <mfedosin> okay, just a quick update from my side:
15:49:34 <mfedosin> I've implemented a lot of tests for wsgi
15:49:48 <mfedosin> #link https://review.openstack.org/#/c/463380/
15:49:54 <mfedosin> I know, it's hard to review
15:50:21 <mfedosin> but please, if you have time :)
15:51:04 <inarotzk> Yes :)
15:51:19 <mfedosin> also I found unused file we can remove without consequences
15:51:26 <mfedosin> https://review.openstack.org/#/c/463381/
15:51:48 <inarotzk> Have we ever used it?
15:51:49 <mfedosin> probably that's all
15:52:04 <mfedosin> let's discuss the documentation
15:52:11 <mfedosin> #topic Documentation
15:52:39 <mfedosin> I'm still writing the documentation related to artifact type framework
15:53:11 <mfedosin> I wanted to finish it yesterday, but wsgi tests took a lot of time
15:53:23 <mfedosin> and I gave up and postponed it
15:53:48 <mfedosin> but I do think it will be done tomorrow or on Thursday
15:54:04 <mfedosin> definitely this week :)
15:54:46 <mfedosin> inarotzk: thank you for merging those two files!
15:55:08 <mfedosin> #topic Open Discussion
15:56:03 <mfedosin> Probably we should think how we can involve more people in glare community...
15:56:10 <mfedosin> inarotzk: any ideas?
15:57:20 <mfedosin> I think openstack mailing list is a good start
15:57:43 <inarotzk> To write there about the project?
15:58:00 <mfedosin> yes
15:58:29 <mfedosin> show activity I would say
15:58:44 <mfedosin> I'll take care about it :)
15:58:57 <inarotzk> :)
15:59:01 <mfedosin> also I found a bug in stackalytics
15:59:17 <inarotzk> What is stackalytics ?
15:59:29 <mfedosin> all glare commits from late March until May went to deb-glare
15:59:37 <mfedosin> http://stackalytics.com/
16:00:01 <mfedosin> all OpenStack statistics
16:00:12 <mfedosin> you can play with it
16:00:22 <mfedosin> start with finding your stats :)
16:00:34 <mfedosin> okay, we're out of time
16:00:43 <mfedosin> inarotzk: thank you for coming
16:00:48 <inarotzk> Thank you Mike
16:00:52 <mfedosin> #endmeeting