Wednesday, 2019-02-20

*** jamesmcarthur has quit IRC00:22
*** jamesmcarthur has joined #storyboard00:23
*** jamesmcarthur has quit IRC00:27
*** whoami-rajat has joined #storyboard02:32
*** ivoline has joined #storyboard02:32
*** jamesmcarthur has joined #storyboard02:37
*** ivoline has quit IRC03:16
*** jamesmcarthur has quit IRC03:21
*** jamesmcarthur has joined #storyboard03:22
*** jamesmcarthur has quit IRC03:27
*** jamesmcarthur has joined #storyboard03:44
*** ivoline has joined #storyboard03:51
*** udesale has joined #storyboard03:56
*** jamesmcarthur has quit IRC03:59
*** jamesmcarthur has joined #storyboard04:00
*** jamesmcarthur has quit IRC04:05
*** jamesmcarthur has joined #storyboard04:09
*** jamesmcarthur has quit IRC04:22
*** jamesmcarthur has joined #storyboard04:25
*** jamesmcarthur has quit IRC04:30
*** jamesmcarthur has joined #storyboard04:53
*** diablo_rojo has quit IRC04:55
*** jamesmcarthur has quit IRC04:59
*** ivoline has quit IRC05:31
*** jtomasek has joined #storyboard06:29
*** dangtrinhnt has quit IRC07:01
*** jamesmcarthur has joined #storyboard07:18
*** jamesmcarthur has quit IRC07:22
*** dangtrinhnt has joined #storyboard07:26
*** udesale has quit IRC07:34
*** udesale has joined #storyboard07:35
*** jpich has joined #storyboard08:24
SotKmkarray: the webclient currently tries to hide the complexities of search/browse from the user08:30
SotKwhen you start typing something in the search box a dropdown will appear with a bunch of criteria in it08:31
SotKthe first item (which has a magnifying glass icon) is a text search term which will add a "q" parameter and make the webclient do a "search" rather than a "browse"08:32
SotKthe other items are all browse parameters; if you start typing a name you can select a user from the dropdown and it'll add an "assignee_id" parameter08:33
*** dtantsur|afk is now known as dtantsur08:34
SotKsadly there's no way yet to explicitly set parameters using a fancy search language like (for example) Gerrit provides08:34
*** tosky has joined #storyboard08:43
*** ianychoi has quit IRC10:59
*** udesale has quit IRC11:14
*** jamesmcarthur has joined #storyboard13:18
*** jamesmcarthur has quit IRC13:22
*** jamesmcarthur has joined #storyboard13:22
*** ianychoi has joined #storyboard13:22
*** jamesmcarthur has quit IRC13:33
*** jamesmcarthur has joined #storyboard13:51
*** jamesmcarthur has quit IRC13:51
*** jamesmcarthur has joined #storyboard13:52
*** jtomasek has quit IRC14:02
*** jtomasek has joined #storyboard14:04
*** mkarray has quit IRC14:12
*** mkarray has joined #storyboard14:14
mkarrayWithout looking too deeply into the code yet, I know a dictionary for all the browsable queries already exist. Would it be too much trouble to have the search check to see if the user entered something that could be browsed instead?14:47
mkarraySotk ^14:47
mkarrayThat way a user could enter those fancy queries on their own without making manual api calls14:49
fungias i mentioned earlier, it probably wouldn't be too hard with a separate input widget or a checkbox to bypass the typeahead stuff and forward literal queries to the api14:50
fungibut that's probably not a great user experience14:50
mkarrayI was thinking more of an "if, else" situation. If the user used one of the browsable queries, there's no need to also do a search, otherwise carry on with a normal search14:52
fungiyeah, that however would require some additional parsing for the input box14:52
mkarrayIf I recall correctly, the browse already checks to make sure it was passed valid criteria. So we can take advantage of that14:52
fungii guess that's more like a "soft" toggle14:52
*** jamesmcarthur has quit IRC14:53
mkarrayYea regardless there will be some sort of parsing14:53
SotKyeah it could be interesting as a first step to better search do some parsing of whatever is entered as a "Text" criteria (the one that becomes the q parameter) and determine if its actually a manually entered browse parameter14:54
mkarrayI suppose we can expand on this further in the meeting today, this is sort of an extension of our convo yesterdat14:54
fungione up side though, we don't really need to worry about backwards-compatibility for the search widget itself (it's the urls which are the sticky wicket), and as long as we retain the old search api method and old parameter name in the webclient, creating a new search language under a different method in the api with a more robust parser can be a fairly compartmentalized effort14:54
fungiand then the webclient can be changed over to hook the search widget up to that in the future and just retain support for the old url pattern for backwards compatibility14:56
fungibut yeah, good topic for the meeting, for sure14:56
SotKI'd like to get to something like Gerrit's search box eventually, where typing suggests various human-readable things based on what you've typed, but also has a real syntax rather than just applying simple filters14:57
SotKso for example, typing "creator" causes some suggestions like "creator: Adam Coldrick" and "text: 'creator'" and so on14:58
fungiyeah, like if we decided on lucene (just an example), we can in theory use a standard parser library in python for the api piece and a standard javascript library for the syntax suggestions in the webclient14:59
fungiso there are benefits to choosing a popular query language rather than inventing our own14:59
fungiobviously the tokens would still need to be looked up (we could either embed those client-side or query the api to get them)15:00
mkarrayAnother option that might be a bit more hacky, but also easier would be simply parsing the url resulting from a search. That way everything stays the same from the perspective of the web-client.15:14
persiaPersonally, I'd prefer to go directly for the complex model without trying to guess what the user meant.  I can think of lots of reasons I might want to search for "Storyboard" without referencing the project, the project group, any tags that might show up, etc.  I'm much less certain I can think of any reason to search for the string "project:openstack-infra/storyboard".16:54
*** dtantsur is now known as dtantsur|afk17:14
*** jpich has quit IRC17:25
*** jaosorior has quit IRC17:49
*** jaosorior has joined #storyboard17:49
*** ivoline has joined #storyboard17:59
*** diablo_rojo has joined #storyboard18:01
diablo_rojoSuuuuuper late to the conversation, but I think a lot of the previous complaints about the search is just that they don't understand how it works. If we could use similar syntax to gerrit I think that would make things a lot easier on people? That doesn't solve all the issues that have been discussed here recently, but I think it would go a long way to not scaring folks away18:09
mkarraypersia From the convos we've had I don't think the intention is to completely scrap "guessing" the users intention, but rather to add more functionality for those who want to be more exact18:14
persiamkarray: My apologies.  I've failed to write clearly.  I don't think it is correct to perform a browse on "project:openstack-infra/storyboard" because someone typed "storyboard" if not selected from the list.  I'd be delighted to see support for typing "project:openstack-infra/storyboard" and getting a browse.18:15
SotK+118:16
mkarrayAgreed18:16
persiadiablo_rojo: Yes, although the search/browse divide also helps confuse things :)  Gerrit has a similar divide, but it masks both in the same input, so only searches for terms it cannot parse (which I think is correct), so feels fairly natural.18:16
SotKthe bit I don't want to lose is only needing to start typing `project` or `storyboard` or whatever in order for the UI to suggest that18:17
persiaSotK: Would you be comfortable if the suggestions were of the form "project:openstack-infra/storyboard" rather than the special icon notation currently used?18:17
persiaOr "tag:low-hanging-fruit"?18:18
SotKabsolutely18:18
persiaThen I think it is likely possible to eat cake and have it too :)18:18
SotKI just don't want to have to type "project:openstack-infra/sto" when I currently just have to type "sto"18:18
diablo_rojoFor those that want to type it out it should be possible, but it should also prompt that like gerrit does in my opinion :)18:19
SotK+118:19
persiaMakes sense, although if one types "sto", one may have to wait a couple seconds to be able to select "project:openstack-infra/storyboard", right?18:19
SotKthough Gerrit only prompts if you start with the "project" bit18:20
persiadiablo_rojo: Yes.  Gerrit has a terrible UI in many ways, but the search entry field isn't part of that.18:20
SotKhopefully less than a couple of seconds, but yes18:20
diablo_rojopersia, yeah probably. Ideally not, but its not an ideal world is it?18:20
persiaespecially for very broad searches on multiple categories (like "s", interrupt, "st", interrupt, "sto" against projects, project groups, people, tags, story titles, tasks, etc.)18:21
SotKcurrently it takes around a second for me, and I expect we can make that faster18:22
diablo_rojoSotK, the optimization of queries was my idea for an intern to work on. We can discuss that more in the meeting though18:23
persiadiablo_rojo: By "optimisation of queries", do you mean backend improvements or UI changes?18:24
diablo_rojobackend improvements18:24
persiaOh, cool.  Be nice to make that faster, although the solutions are probably very DB-specific.18:25
diablo_rojoYeah I would guess so, but I think we taken a lot of other steps to make optimizations so this is the next logical place to clean things up18:30
persiayep18:31
SotKI suspect we could get somewhere just by indexing our database better18:31
SotKand yeah, numerous queries can probably be improved18:31
mkarrayI would suggest adding the functionality we've been bringing up over the past couple of days before diving into optimisations though18:32
SotKI'll be a few minutes late for the meeting, sorry18:52
* SotK looks forward to summertime18:52
ivolineHello guys, where and when is the meeting ?18:53
SotKin #openstack-meeting in a bit over 5 minutes from now18:55
ivolineOkay, thanks18:56
persiamkarray: I suspect they can be done in parallel.  I'm not sure we've taken a good look at DB optimisations, and having someone investigate would help.  I agree that changing the search/browse interface will probably change some queries, but I think the majority of queries are of the "get the properties of the item with this index" variety, which also aren't as fast as they might be.18:58
fungiooh, i missed some good scrollback in here but it's meeting time19:00
fungii'll try to catch up in parallel19:00
diablo_rojofungi, we are waiting 5 min for SotK to get home from work I would guess?19:01
fungioh, yep. plenty of time for me to read! ;)19:03
fungimkarray: i think the suggestion about query optimizations is unrelated (or at least not directly related) to search functionality19:04
mkarrayYou guys would be more informed than me at this point. If that's the care I have no opposition to it19:04
fungiwe have some very inefficient database queries right now which cause pulling up a board with tag-oriented lanes to call queries which make mysql eat an entire cpu for 10+ seconds before returning the necessary data to the client19:05
mkarrayI was just afraid some optimisation fixes would go into something that might be changed by us19:05
fungiand yeah, most of that is almost certainly just a lack of strategic indexes on some columns19:05
diablo_rojoYeah I think the optimizations are separate19:05
diablo_rojothan how users do the search19:05
* SotK is ready, sorry about that19:13
diablo_rojoReady!19:13
fungino worries!19:13
SotK-> #openstack-meeting19:13
*** jaosorior has quit IRC19:18
*** jaosorior has joined #storyboard19:28
fungi#openstack-meeting -> .19:59
fungiso anyway...20:00
SotKdid anyone have anything more on the outreachy topic?20:00
fungii do agree there's a balancing act for picking things we need done but which can be an interesting task an outreachy intern will want to select20:00
diablo_rojofungi, did you want to be a co-mentor too?20:01
fungiwant to, yes... whether i'll actually find time to be much help there is another matter20:01
diablo_rojoI can start drafting these up today and get them into the outreachy tool. I think I can start the application and save it without submitting20:01
diablo_rojoI'll probably be the primary again20:01
diablo_rojoand SotK will be secondary20:01
fungii'd hate to say i'll co-mentor and then leave you holding the bag or fail to provide sufficient guidance to the mentee20:01
diablo_rojoif I can add a third, I will fungi20:02
SotKfungi: yeah... fixing the tests is creeping up on my list of personal pain points too20:02
SotKdiablo_rojo: sounds good, thanks20:02
diablo_rojoHa ha so... queries and tests?20:02
*** jamesmcarthur has joined #storyboard20:02
fungiwell, tests as mentioned aren't likely to be an attractive solution20:02
fungimkarray mentioned database optimizations sounded intruiging though, from his perspective as an intern20:03
ivoline The query optimization is quite attractive20:03
mkarrayPersonally wouldn't sign up for an internship focused on fixing tests to be quite honest20:04
fungiyeah, i think one of the challenges with the db query optimizing is we'll need representative test data20:04
ivolineAs an intern, I'll go for that too. :)20:04
fungifatema e-mailed me recently asking for a db dump to use for local testing... maybe scripting up something which can interface with the sb api to autogenerate useful test data might be something folks want/need too?20:05
fungiwe could even build a reference set with it and make that available for download, as a convenience20:06
SotKyeah I think producing a reference dataset would be good20:06
fungihaving one as a reference also makes reproducibility of performance tests easier20:06
fungisince everybody can do it from the exact same data20:07
SotKyep, it seems like a sensible starting point to any real optimisation work no matter who is doing it20:07
ivolineWas just talking to diablo_rojo about a db dump for local testing before the meeting.20:07
ivolineI'll need it for a low hanging fruit bug I am currently working on20:08
fungiyeah, and the data we have currently in our production and staging instances have potentially sensitive bits we'd need to sanitize/redact first which makes using them for that purpose complicated20:09
ivolineoh okay20:09
mkarrayWould using data from the other openstack projects using storyboard be a solution?20:10
mkarrayI'd guess there's no sensitive information in the projects which are by nature open to the public20:11
diablo_rojofungi, if you want to make a dump we could put it in the wiki maybe?20:11
diablo_rojomkarray, aside from private stories thats mostly true20:11
diablo_rojowe need to remove those from the dump20:11
fungiwell, the complexity of sanitizing is we need to exclude session keys, api keys, e-mail addresses, et cetera. and then yes there's the question of how to identify and omit all the rows in various tables which may hint at a private story20:12
fungiit'll be time-consuming, and to be honest i'd rather put my time into scripting something to create sample data than into trying to clean up an existing dataset20:13
fungiif it's one of the two20:13
SotKas a low effort solution we could perhaps run the migration script into a local instance for some big projects, and make some boards like https://storyboard.openstack.org/#!/board/83 maybe?20:13
fungithat's also far safer, since there's no chance i miss something i should have known to filter out20:14
fungiyeah, that's a possibility20:14
fungicould be done by anybody on a local deployment of sb too20:14
SotKyeah, now we have private stories implemented and in use providing production dumps feels like its asking for trouble really20:14
fungii need to step away. christine is apparently dangerously hungry and i told her we'd go grab some food. should be back in an hour or so20:15
SotKenjoy :)20:15
fungithanks!20:15
SotKthe only drawback is that some projects take weeks to import from launchpad20:16
SotKanyway, I think query optimisation and duplicates or some other feature that's more interesting than rewriting tests20:16
SotKdiablo_rojo: do you have a preference?20:17
diablo_rojoI think query optimisation sounds good20:22
diablo_rojoI will start there and then depending on how much more effort I want to put in maybe we can post another for testing or duplicates20:23
SotKsounds good to me, thanks20:24
diablo_rojoI will try to hammer that out today20:25
*** ivoline has quit IRC20:25
SotKso, forum planning20:25
SotKthere's an etherpad: https://etherpad.openstack.org/p/SB_train_forum_brainstorming20:25
*** ivoline_ has joined #storyboard20:25
diablo_rojoYep.20:26
diablo_rojoI guess we do another pain points gathering20:27
SotKI think that's probably sensible20:28
*** ivoline_ has quit IRC20:29
*** ivoline_ has joined #storyboard20:30
SotKhopefully by then we have attachments working20:30
diablo_rojoOr like 95% of the way there so people can leave it alone :)20:30
SotKyup, done enough that the session isn't just a discussion on attachments20:31
SotKshould we try to populate that etherpad with some anticipated things beforehand?20:32
*** jtomasek has quit IRC20:37
SotKmkarray: do you still want to discuss search improvements even though its not particularly meeting time at this point? sorry for not getting round to your agenda item during the actual meeting20:42
mkarrayNo worries, and yes I would prefer to still have a discussion on it.20:42
mkarrayAs we've already discussed, there's currently no way for a user to browse through the web-interface20:43
mkarrayIs it something you guys believe to be worth investing time in?20:44
SotKso, if you select something from the search bar's dropdown that isn't the text option (so one of the things with the project icon next to it for example) then a browse gets done20:55
SotKhowever this behaviour confuses pretty much everyone afaict and I think its definitely worth investing time in turning it into something more friendly and understandable20:56
mkarrayI understand that, I was thinking of implementing  a system that allows users to type exactly what they want. As in executing their own browse without clicking on an option20:57
SotKsounds like a good improvement to me20:59
SotKas long as the ability to click on options to construct such a query continues to exist for lazy folks like me20:59
mkarrayIn terms of what I was attempting to implement, doing so would be two birds with one stone.21:04
*** jamesmcarthur has quit IRC21:05
mkarrayFrom what we talked about in pm's yesterday, each storyboard component has it's own browsable tags. (assignee_id, creator_id). If we had a manual browse, this gives the user the ability to search on any of the tags instead of just the ones for each component21:06
mkarrayFor example: As of right now, browsing for the author of a story isn't currently supported in the web-interface but the assignee_id is. If we allowed a manual browse, (creator_id:"mkarray") then they can access those stories as well21:09
*** jamesmcarthur has joined #storyboard21:17
*** ivoline_ has quit IRC21:21
SotKmkarray: yep, I think that'd be a nice solution21:29
mkarraySounds good, I'll start there then21:30
SotKlong-term it'd be nice to support being able to do something like `creator:"mkarray" OR creator:"SotK"` too, but I think we can extend into doing that kind of thing once the existing confusion is at least helped a bit21:32
* SotK suspects that persia's earlier suggestion was to go straight to an implementation of the latter, but I could be wrong21:32
persiaFor now, let's not try any logical operators.  Last time we discussed how to implement them in search, we discovered it was *very* complex to do sensibly.21:34
persiaFor that matter, in other parts of the UI, we have ordered addition and subtraction for complex queries: maybe it makes sense to reuse that model in the short term.21:35
*** jamesmcarthur has quit IRC21:55
SotKthe worklist filtering stuff? I suspect that will need enough backend changes that we may as well write a better version21:58
*** jamesmcarthur has joined #storyboard21:59
persiathat also works.  My main thought was to seek consistency if possible.22:02
SotKI agree with that thought, I'd just prefer to get there by eventually replacing the existing filtering with whatever query parsing we end up implementing for searching22:05
persiaIndeed, that would probably be better, although the migration might be interesting :)22:15
*** mkarray has quit IRC22:17
*** whoami-rajat has quit IRC22:31
diablo_rojoSotK, fungi looks like I can't add you as co-mentors, but this is the link you need to add yourselves: https://www.outreachy.org/may-2019-august-2019-outreachy-internships/communities/openstack/storyboard-database-query-optimizations/cfp/mentor/submit/23:34
*** jamesmcarthur has quit IRC23:55
*** jamesmcarthur has joined #storyboard23:56

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!