Wednesday, 2018-08-22

*** gouthamr has quit IRC01:23
*** gouthamr has joined #storyboard02:36
*** jamesmcarthur has joined #storyboard03:08
*** jamesmcarthur has quit IRC03:13
*** diablo_rojo has quit IRC03:34
*** diablo_rojo has joined #storyboard06:33
*** tosky has joined #storyboard07:13
*** jpich has joined #storyboard07:20
*** dtantsur|afk is now known as dtantsur07:22
*** jtomasek has joined #storyboard07:42
*** tosky has quit IRC07:43
*** tosky has joined #storyboard07:43
*** diablo_rojo has quit IRC08:48
*** tosky has quit IRC08:59
*** tosky has joined #storyboard09:00
*** jamesmcarthur has joined #storyboard09:09
*** jamesmcarthur has quit IRC09:13
*** ttx has joined #storyboard09:17
*** jaosorior_ has quit IRC10:05
*** jaosorior has joined #storyboard11:15
*** ssbarnea|ruck has quit IRC12:13
*** fatema_ has joined #storyboard12:42
*** jamesmcarthur has joined #storyboard12:50
*** fatema_ has quit IRC13:01
dhellmannI'm seeing some interesting performance issues with https://storyboard.openstack.org/#!/story/2002586 that are probably related to the large number of comments on that story13:02
dhellmannthe browser seems to hang for a good while trying to render the page13:03
dhellmannsafari, at least, I haven't tried others13:03
toskydhellmann: is it the python3 goal? I've seen it with Firefox13:04
toskyI was going to ask about it13:04
dhellmannyeah, that's the one tracking the zuul migration13:04
dhellmannchrome offers to kill the page since it's unresponsive13:05
toskyfirefox too after a while13:05
SotKoh that's pretty painful13:08
SotKI guess our old hope that no stories would have so many comments as to cause big issues was too hopeful13:08
dhellmannhow hard would it be to do something like show the N most recent comments by default and have a user-triggered action to show the rest?13:11
dhellmannI don't know what value N might have, 50?13:12
SotKshouldn't be too hard since the API already supports doing something like that13:13
dhellmannI can't tell if the delay is in fetching the comments or just turning the results into html13:14
dhellmannit feels like the latter? but I would have to look at the page load times more closely13:14
toskySotK: but what exactly lead to that overload?13:16
toskya simple list of items should not kill the browser, even with a bit of graphic around13:16
dhellmannhttps://storyboard.openstack.org/#!/story/2003525 for tracking13:17
SotKits the latter, the large number of tasks won't be helping since the code to organise them by project and branch is pretty inefficient too13:19
SotKthe fetching takes a few seconds for me, but the rendering takes ages13:19
SotKtosky: I think passing them all through the markdown renderer isn't helping, but I haven't looked in enough depth to know properly13:20
*** gouthamr has quit IRC14:00
*** dabukalam has quit IRC14:25
*** jamesmcarthur has quit IRC14:51
*** jamesmcarthur has joined #storyboard14:56
*** jamesmcarthur has quit IRC15:06
*** jamesmcarthur has joined #storyboard15:10
*** jamesmcarthur has quit IRC15:15
*** openstackgerrit has quit IRC15:31
*** jamesmcarthur has joined #storyboard15:33
*** diablo_rojo has joined #storyboard16:02
fungithe webclient had pagination of comments once upon a time, didn't it? and we dropped it because people had a hard time figuring out that they weren't seeing them all and had to click something to load the rest16:10
fungii expect if we ever get to that angularjs upgrade mordred was talking about, the server-side prerendering would solve a lot of this too since it could be cached and served back up quickly while the browser slowly worked to replace it with the dynamically-rendered equivalent16:11
*** fatema_ has joined #storyboard16:17
*** jpich has quit IRC16:40
*** jamesmcarthur has quit IRC16:52
dhellmannthat story is now up to 1166 comments and counting17:07
SotKyeah we used to paginate them starting at the oldest, and there was lots of confusion about why some comments were "missing"17:13
*** EmilienM has quit IRC17:25
*** corvus has quit IRC17:25
*** jeblair has joined #storyboard17:30
*** EmilienM has joined #storyboard17:30
*** jeblair is now known as corvus17:41
*** jamesmcarthur has joined #storyboard18:07
*** ChanServ has quit IRC18:16
*** ChanServ has joined #storyboard18:22
*** barjavel.freenode.net sets mode: +o ChanServ18:22
*** dtantsur is now known as dtantsur|afk18:43
*** tosky has quit IRC18:47
*** jamesmcarthur has quit IRC18:50
diablo_rojoWe having a meeting today?19:02
SotKsure19:02
mordredSotK, fungi: I thni know that the scss transition is complete, the next step in the crap I was working on should be possible19:12
mordredalso - I'm not really here right now19:12
SotKmordred: yeah I figured getting that done would help your patch19:13
mordredSotK: yah - the less stuff in grunt == unhappy in webpack19:19
mordredSotK: once I can get that webpack patch done, there's actually a good pattern for wrapping an angular v1 app in an angular v2 app so that components and whatnot can be updated one piece at a time19:20
fatema_I can do it as a separate patch20:00
fatema_for simplejson and I guess this would make using arrow function in JS possible20:01
persiafatema_: Procedurally, my understanding is that if someone -1's something, anyone who uploads a new revision to the same change resets the -1 back to "needs review".20:01
persiaSo either a separate patch for simplejson (with rationale in the commit message), or new revision of the rejected change (only for simplejson) should work.  I'd recommend a new one, as the purpose is different, so the old abandoned one can remain as documentation of the consensus not to add launchpadlib.20:02
fatema_aha persia I am fine with new patch as well20:03
persiaErr, a new change (rather than a new revision of the old change).  Apologies that I can't write clearly today.20:03
fatema_a new change** -> still getting use to the names20:03
SotKadding simplejson to the api dependencies won't make arrow functions possible, I think you'd need to at least set http://git.openstack.org/cgit/openstack-infra/storyboard-webclient/tree/.eslintrc#n5 to true20:03
SotKthere may also be some other things that need updating for the build not to error, but I'm not certain what at a glance20:04
persiaMaybe the ideal new change adds the dependency, sets the configuration, and adds some code to make it work.20:04
fatema_I can try both, but how to test it20:05
fatema_?20:05
fatema_is it done locally :20:06
diablo_rojoOther thing to note that I forgot to mention before the end of the meeting- there will be a storyboard demo at the PTG during lunch so we might get a lot of interest after the PTG20:06
persiaThat's why I was suggesting adding everything in a single change (dependency, config, code).  That should let you render some new javascript that can be pointed at storyboard-dev for testing (either directly or by making zuul build it)20:06
fatema_like I'd edit write a function and run "npm run lint"20:06
fatema_persia, but this would complicate the change, I just prefer small changes20:07
fatema_but you make sense20:08
persiaI share your preference for small changes.  If you think it becomes too large in one change, maybe a set of changes that depend on each other, that get reviewed all together.20:09
persiaMostly because I dislike small changes where it isn't clear *why* the change is made, or where it isn't possible to test whether the small change helps achieve the large goal.20:09
persia(but I can't +2 or -2, so it's very safe to disagree with me about these things)20:10
fatema_I guess I'd try testing locally, my guess it'd work then as the change I'm trying to write and needs arrow function is already dependent20:11
SotKi don't think you'll need the dependency at all, it should just be a case of enabling the use of modern syntax in our build process and then trying to use it20:12
fatema_SotK, I guess I'll give it a try then20:15
fatema_well, as the tasks statuses are verified by the API now, It would make sense to drop the enum constraints for that column20:18
fatema_in the DB\20:18
persiaMy general experience suggests a "belt & braces" approach to constraints.20:19
persiaUnless there is evidence that doing so is causing delays of some sort due to excessive overhead.20:20
fatema_my point isn't the delay, I'd like more flexibility for the statuses20:21
fatema_as to be more maintainable20:22
fatema_e.g. for further expansion20:22
*** jamesmcarthur has joined #storyboard20:27
*** jamesmcarthur has quit IRC20:33
*** jamesmcarthur has joined #storyboard20:34
persiaI'm very strongly against expansion of task status.  Having very few is, to me, one of the strengths of storyboard.  When Malone (which became LP Bugs) grew new statuses, it would exponentially grow documentation about statuses, meetings to set statuses, and arguments about the semantics of status.20:34
persiaI'm fine with the idea of having rich Story Status, derived from simple task status, but to me, having rich task status is a recipe for people substituting fiddling with task status for doing things or understanding the wider scope.20:34
persiaFurther, I think some popular statuses are actively bad.  Things like "needinfo", "opinion", and even "wontfix" tend to constrain development and cause frustration for contributors.20:36
persia"confirmed" is fine, when used to mean "happens in more than one place".  It is more painful when used to mean "actually an issue", and even moreso when ACL limited so that only blessed folk can confirm (because this creates a group of people who are actively disenfranchised while experiencing problems with a project).20:37
persiaLimiting ourselves to a set that means "available to start", "someone is working on it", "solution available", "done", and "Adding this was a mistake" is ideal to me.  I'm open to discussion about why we need more, but there should be a clear and obvious wide benefit to the entire project to have it, rather than it being useful for something that could be expressed with a tag.20:39
persia(for extra points, when considering adding a status, consider how it might affect a storyboard installation other than openstack's)20:42
*** openstackgerrit has joined #storyboard20:53
openstackgerritMerged openstack-infra/storyboard master: Make email public field  https://review.openstack.org/58966320:53
*** jamesmcarthur has quit IRC20:57
*** jtomasek has quit IRC20:57
*** jamesmcarthur has joined #storyboard21:03
*** jamesmcarthur has quit IRC21:08
*** gouthamr has joined #storyboard21:12
fungii agree with persia's minimalist approach to task statuses21:37
fungii always want that plural to be stati but it's 4th declinsion nominative, not 2nd21:37
fungistatūs for the nominative plural in latin i suppose21:38
* fungi drags his brain back out of highschool latin class21:39
SotKI also agree21:39
fungibut yes, from what i've seen any proliferation of statuses leads users to attempt to find a meaning for each and use them all whether they're needed or not21:39
fungiyou get very pointlessly nuanced rules to differentiate between certain ones, where ultimately the practical result of using any of them is roughly the same21:40
fungiunnecessary cognitive overhead21:41
fatema_well, what I wanted is flexibility to change statuses for more meaningful as said for "Merged" to be "Resolved"  to be more relevant issues that are resolved but not patches in code https://storyboard.openstack.org/#!/story/200143222:33
*** ChanServ has quit IRC22:49
*** ChanServ has joined #storyboard23:03
*** barjavel.freenode.net sets mode: +o ChanServ23:03
dhellmannfatema_ : I want you to know that i have not forgotten you, but I've been buried under other work and haven't been able to get back to answering your email. :-/23:12
*** jamesmcarthur has joined #storyboard23:13
dhellmannfungi , persia, SotK : part of the point of the discussion about dropping the database constraint around task statuses is that having that constraint makes it harder to change the terms used, and as fatema_ points out "Merged" currently means "Resolved" but sometimes there was no patch to merge for a task. So we don't necessarily want to add a bunch more statuses, but as things stand today *changing* any of them is really23:14
dhellmann tough.23:14
persiadhellmann: Can we do a name change with just two patches, Depends-On, and some IRC traffic?  If not, you've convinced me.  If so, then I'm less certain.23:16
persiaI'm delighted with the idea of clearing up semantics to change "Merged" to "Resolved": it's a clearer word for the concept in the minimal semantics I prefer.23:16
dhellmannusing sqlite for dev testing makes some of this harder, because it doesn't support most of the DDL to change table definitions after the fact23:17
dhellmannso we probably need to do something about that23:17
dhellmannafter we fix that, somehow, then we can change the names stored in mysql23:17
persiaSadly, really, because the sqlite-for-local-testing stuff made development setup a lot easier.23:17
dhellmannbut I personally don't consider database constraints necessary for a service that is only accessed through an API, because that layer can do the constraining -- we even have a layer just for that, in WSME23:18
dhellmannyes, that's why I did it23:18
dhellmannwell, that and I got tired of the tests thrashing my disk23:18
persiaI agree they aren't necessary.  I've just been bitten before by having out-of-band imports cause systems to fail because constraints were skipped through the out-of-band nature of import, which makes me extra cautious.23:19
dhellmanndo we have that here? I thought the import tool used the api23:19
persiaThere exists raw DB access, limited to infra-root.  So far, I think all the raw SQL has been safe.23:20
dhellmannif we have to resort to that, it sounds like we need more tools, but I do understand the concern if we're doing that on any sort of frequent basis23:20
persiaI believe we've done it three times over the entire lifetime of storyboard.openstack.org.23:20
dhellmannok, so that seems low risk :-)23:21
persiaYep.  I'm just hyper-conservative :)23:21
fungiwe occasionally go in and edit fields in tables manually23:21
dhellmannanyway, I just wanted to give some of the background on that conversation23:21
fungimostly for renaming things23:21
persiafungi: Ah, so maybe it is more often.  I was only counting the times I remember it being requested in this channel because of an outage or issue.23:22
fungistuff that could happen through an api but gets done so infrequently that there was no drive to add the update methods (or we don't know they exist"23:22
fungiwe very occasionally rename a project or project-group. it's an update to one field of one row of one table23:23
fungias i say, if there are/were api methods to achieve those, we'd just do that instead23:24
fungithe less occasional things which you're likely remembering had to do with updating to nondefault utf8mb4 text encoding, or mass alterations of openid url hostnames23:25
fungithat sort of one-time maintenance23:25
persiafungi: does the code that does things like renames undergo review?23:25
persiaYes, those were two of them.  The third was when we discovered we didn't have any admins defined.23:25
fungiahh, right, that needed a bool flipped in a row i think23:26
persiaI think it was two or three rows, but yeah.23:26
fungiyes and no on the review. the project rename code is in an ansible role in the system-config repo and that gets code-reviewed. the project-group rename has only ever been done once to my knowledge but looks basically the same except the table name is different23:27
persiaThen let's call that "four manual actions" and everything else in is code review.23:28
fungiyeah23:28
persiaGiven that we implicity trust code review (and implicitly trust our infra team with being careful), that seems like maybe enough to not need belt & braces.23:28
fungiand i meant ansible playbook, not role. it's here: https://git.openstack.org/cgit/openstack-infra/system-config/tree/playbooks/rename_repos.yaml#n3723:28
persiaMind you, we'll need to be extra-careful with manual SQL changes if we don't have DB constraints (but it makes DB portability much easier anyway)23:29
* persia really wishes to have never been a DBA, which would make it much easier to make a positive statement at this point23:30
fungithe infra sysadmins already tend to be ultra-paranoid when directly manipulating relational database content, and also have two former mysql upstream devs on the team23:31
fungithose two assertions might also be related ;)23:31
persiaheh23:32
fungiand we have redundant copies of database backups taken automatically too, just in case23:32
persiafatema_: You might want to check with SotK again, but I suspect there's a chance of consensus to move forward with your multi-step plan for 200143223:33
fungione copy on the server itself, another copied to a server in a different cloud region, performed daily with substantial retention on the remote copy too23:33
persiaBy "substantial retention", you mean to say that we have N snapshots of the database over some time period, in case of mass damage?23:34
fungimore like in case of subtle damage which goes undetected for weeks/months23:35
*** jamesmcarthur has quit IRC23:35
fungiimmediately obvious catastrophic damage is far easier to deal with23:35
persiaFair enough :)23:36
fungii say "substantial retention" because i don't think we've deleted any of those23:37
fungigranted, we likely should at some point23:37
persiaThat is a more generous definition of "substantial" than I would have expected.23:37
fungion the sb server we only keep a month of nightly snapshots23:38
fungithose just get rotated with logrotate23:38
fungion the bup server i don't actually know if it's possible to truncate history other than to redirect future updates to a new repository and eventually age out and delete the previous one23:39
persiabup is clearly not a technology designed to be used for sequentia millenia :)23:40
persia+l23:40
fungiheh23:41
fungiyeah, it basically just writes and commits to a git lfs repo23:41
fungii suppose it would be possible to rewrite history onto a squash of earlier commits23:42
fungibut the temporary storage and cpu cost make rotating to fresh repos about as effective23:43
fungiwe really only backup data. everything else can be rebuilt via configuration management, so by being selective in what we back up we've been able to put off actually dealing with running out of space for backup retention23:45
*** gouthamr has quit IRC23:48

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