Friday, 2016-07-08

*** rfolco_ has quit IRC01:10
*** dhellmann has quit IRC01:19
*** dhellmann has joined #openstack-sprint01:26
*** dhellmann has quit IRC01:31
*** dhellmann has joined #openstack-sprint01:31
*** dhellmann has quit IRC01:39
*** dhellmann has joined #openstack-sprint01:39
*** dhellmann has quit IRC01:45
*** dhellmann has joined #openstack-sprint01:46
*** dhellmann has quit IRC01:51
*** dhellmann has joined #openstack-sprint01:52
*** dhellmann has quit IRC01:59
*** dhellmann has joined #openstack-sprint02:00
*** rfolco_ has joined #openstack-sprint02:02
*** rfolco_ has quit IRC02:02
*** kien-ha has joined #openstack-sprint03:21
*** kien-ha has quit IRC03:23
*** baoli has quit IRC06:51
*** mrmartin has joined #openstack-sprint07:27
*** mrmartin has quit IRC08:05
*** pedroalvarez has quit IRC08:44
*** pedroalvarez has joined #openstack-sprint08:46
*** electrofelix has joined #openstack-sprint11:15
*** rfolco_ has joined #openstack-sprint11:40
*** waynr has joined #openstack-sprint12:50
*** zxiiro has joined #openstack-sprint13:12
electrofelixwaynr zxiiro zaro: looks like we have enough JJB cores to get started13:18
electrofelixzxiiro: kien-ha joining us?13:19
*** baoli has joined #openstack-sprint13:19
zxiiroelectrofelix: yes he is13:20
*** baoli_ has joined #openstack-sprint13:20
zxiiroelectrofelix: waynr so 2 patches i'd really like to land are the Views and Folder patches13:21
*** kien-ha has joined #openstack-sprint13:21
electrofelixzxiiro: I think they are probably best left after some of the refactoring, and probably try to focus on patches that either are closely related to the v2.0 api work or would be much easier to add now and move around a bit with the refactoring13:22
zxiirosure13:23
electrofelixboth the folders and views patches require work IIRC13:23
electrofelixI have an etherpad created - https://etherpad.openstack.org/p/jjb_api_v2.013:23
electrofelixif we can over the first two of these sessions, aim for just a small about of the initial patches of the V2.0 work, I think it'll start to become easier to review/rebase the remainder in a more async fashion13:24
*** baoli has quit IRC13:25
zxiirolooking now. do some of these need to be merged in order?13:27
electrofelixwaynr: I've commented on all four patches at this stage (tried to do so ahead of time)13:27
*** pedroalvarez has left #openstack-sprint13:28
electrofelixto set a quick set of goals and expectations13:29
electrofelixnot expecting these sessions to take 100% of peoples time13:29
electrofelixjust that we make it a top priority versus other things you're busy with so as to expedite reviewing13:29
electrofelixIdeally we can help waynr out here by agreeing in principle whether the suggested review changes make sense and then pick a patch each to rework in line with the comments13:30
electrofelixideally all 4 patches are merged by the end of today, and we have plans for the next set and align them13:31
electrofelixGeneral familiarity with the V2.0 changes is more important13:31
electrofelixwaynr: I can only think of one patch that I have that might be useful to land and rebase others on top: https://review.openstack.org/336090 -> it's a refactor of the test class inheritance, but you may also have done the same somewhere in your patch series13:32
waynrelectrofelix: that sounds like a good plan, what i'm not sure of given the interdependent nature of this series of patches is if I really want to burden any one of us (myself in particular) with making fundamental changes to any one of them that require serious rebase efforts13:33
electrofelixI'm happy enough to help with the rebase efforts, it'll help me understand things if nothing else13:34
waynrin particular I am thinking of https://review.openstack.org/#/c/319611 where reverting API changes to the Builder class will have rebase consequences in later patches and it would be simpler to make the suggested change as a new patch13:35
electrofelixyeap, some of these might be easier done by adding a new patch rather than overhaulding the existing commit13:36
electrofelixif we can agree on what makes sense, some experimentation with rebasing/reworking can be done13:37
*** cdelatte has quit IRC13:37
electrofelixdo we want to start with https://review.openstack.org/#/c/180252/?13:37
*** cdelatte has joined #openstack-sprint13:37
waynrsure, looking now13:38
waynrsomething to keep in mind about that the command line parsing change is that it begins in that patch and largely ends here: https://review.openstack.org/#/c/31961713:40
waynrthere are additional changes in the jenkins_jobs/cli/ directory in later patches but most of those have more to do with refactors going on throughout in other parts of the API13:42
*** larainema has joined #openstack-sprint13:45
waynrelectrofelix, zxiiro so in one of my emails earlier this year I pointed out that some comments in earlier patches may already be addressed in later patches, I'm thinking it would be useful to adopt a convention for pointing out where this is the case13:45
zxiiroI think I'm fine with that if it's resolved in a later patch13:46
waynrokay, in response to comments where this is the case I will link to the patch where the issue is resolved13:47
waynri'll add notes to the etherpad about these process issues just for future reference13:48
waynrokay, etherpad updated13:55
electrofelixthanks13:55
*** mrmartin has joined #openstack-sprint13:55
waynrwhew, so many comments...13:56
waynrelectrofelix++13:56
zxiiroyeah good job14:00
waynrelectrofelix: as for https://review.openstack.org/#/c/336090/ I don't think I've done anything quite along those lines, just from briefly looking over it I don't think it will conflict too seriously with anything I've done14:01
waynrmost of my test changes focus on tests/cmd/14:01
electrofelixthat's good, and I'm happy to do some rebasing anyway14:01
electrofelixjust found out precisely why the test inheritance change works https://review.openstack.org/336090 -> turns out our main problem was that importing a test class directly instead of the module results in it being added to the test suite14:02
electrofelixanother good reason to import modules only14:02
waynrah, interesting14:02
electrofelixno wonder I couldn't get that to work as expected before14:03
*** mrmartin has quit IRC14:04
zxiirogood to know14:04
electrofelixso one thing to watch out for, although it'll cause some rebase work, is that if someone needs to follow a line of code through the history of changes, the less number of patches that are involved in changing it the better. This may mean it makes sense to fix some style issues in some patches that introduce them rather than allowing them to be fixed later. Conversely, if it was in the same style before, then fixing it as a14:07
electrofelixI might add that as a rule of thumb for style based issue in helping decide when it makes sense to do the rework and when its better as a subsequent patch14:08
electrofelixgoing to get some coffee back shortly14:08
waynrI am getting a slow start on responding to feedback because I am still eating breakfast, if you can call chips and salsa with a side of sweet cherries "breakfast"14:10
*** fergal_ has joined #openstack-sprint14:13
electrofelixtasty breakfast?14:36
waynryep14:36
waynrokay I am looking at the comments here: https://review.openstack.org/#/c/180252/10/jenkins_jobs/cli/entry.py14:37
waynrelectrofelix: in your comment about consistency for add_argument help strings, would it be okay to be consistent in the other way so that they are always using triple single quote characters?14:38
waynrthe benefit of triple quote characters is that it is less tedious to change the help text14:38
electrofelixwaynr: I'd imagine it's more the indent styling that impacts changing the contents of that, over anything else14:40
electrofelixone thing I haven't check is whether multiline format impacts doc/man page generation14:40
waynrelectrofelix: sure, indent changes are just as valid of a change as changing the content of the help text and in both cases the use of triple quote characters makes code change less of a chore14:42
zxiiroin my experience triple quote does affect some parsers if you also indent14:43
zxiiroso the safest way to use triple quote is to not indent on your subsequent lines14:44
zxiiroi can't recall which parses fail to ignore the starting whitespace14:44
zxiiroparsers*14:44
electrofelixzxiiro: when you say parsers, argparsers or document parsers generating content from an argparser instance?14:46
electrofelixgoing to see if I can dump the internal formatting, if it automatically tidies it up then I see no problem, it uses an internal multiline string to store it, I'd be far less comfortable that it's not going to cause issues in the future14:47
zxiiroelectrofelix: yeah things that generate either t he CLI help or docs like sphinx14:47
zxiiromaybe the newer ones do a better job but I recall long ago I had something that didn't ignore the indents14:48
zxiironeed to step out for a meeting. let me know if i can help with some rebasing14:51
electrofelixwaynr: looking at the internal representation of the parser object I see a number of helper strings in the following format14:52
electrofelix"Password or API token to use for authenticating towards\n            Jenkins. This overrides the password specified in the configuration\n            file.\n            "14:52
waynrconsidering the preponderance of multiline strings in jenkins_jobs/modules/* used to generate documentation I would be surprised if this leads to a serious problem here, but jenkins_jobs/modules/* might work because they are class and function docstrings14:52
electrofelixwaynr: I think that's exactly the difference, they get stored in a particular way14:52
electrofelixchanging the format slight ensures it is stored as "help='Password or API token to use for authenticating towardsJenkins. This overrides the password specified in the configuration file.'"14:54
electrofelixI'll paste the format change I did for the help strings14:54
electrofelixinto the etherpad14:54
waynri though the issue was whether or not the generated documentation contains those newlines, not the internal representation14:55
waynrs/internal/intermediate/14:55
electrofelixI was hoping that he internal representation removed the newlines when it was added, making it a moot point14:55
waynrI can see in the generated man page does not contain the newlines and you said that the sphinx documentation looks fine, is thee another type of generated documentation that we should be worried about?14:57
electrofelixI think it might anything that needs to use RawTextHelpFormatter, still looking, which means that if we need to add help and preserve newlines, we can't use triple quotes, it looks like argparse relies on the formatter to remove the newlines and whitespace, so if sphinx is using the same formatter it should be ok14:59
waynrwow, all of the JJB documentation is in the man page...15:00
electrofelixguess I'm wary where there might be surprises in the future and there exists an alternative styling that appears to achieve the same without any concerns about tweaking formatters15:00
waynrthe alternative doesn't address my concern about making code changes a chore15:01
waynris the concern that there might someday be a documentation system that can't handle the same legitimate python code that the argparse, sphinx, and manpage documentation generators seem to handle fine?15:05
electrofelixI think the problem is that some of us have experienced issues with it before, and it's unclear if it's completely gone away15:06
electrofelixhaving a quick look around15:07
waynrelectrofelix: a good example of where this will be a pain in the ass with concatenated single-quotes is here: https://review.openstack.org/#/c/319609 where parser creation was refactored into a separate module15:19
waynrthe indentation changes there as a result of convering an instance method to a function15:20
*** fergal_ has quit IRC15:20
electrofelixSeems it might be better to apply consistent style to all of these afterwards even though this is causing a lot of code churn in moving around15:22
waynr...maybe not the best example though, considering that code was originally in jenkins_jobs/cmd.py, but it was impossible to have perfect knowledge of the final structure of this code at the beginning15:22
zarosorry guys. i've been on vacation for last 2 weeks, will reappear on monday.15:25
waynrvacation++15:25
electrofelixzaro: no worries, catch you at the session in two weeks ;-)15:25
electrofelixwaynr: have you made any tweaks so far, I've found it's not too bad changing the format if you're ok with me aligning them all to the following format:15:34
electrofelix        update.add_argument(15:34
electrofelix            '--workers',15:34
electrofelix            dest='n_workers',15:34
electrofelix            type=int,15:34
electrofelix            default=1,15:34
electrofelix            help='number of workers to use, 0 for autodetection and 1 for '15:34
electrofelix                 'just one worker.'15:34
electrofelix        )15:34
larainemaHello, electrofelix waynr zxiiro zaro15:36
zxiiroalright i'm back15:38
waynrelectrofelix: yeah i'm going through my second pass at reformatting this patch already15:42
waynri'm more curious if this is an issue where you just prefer single quotes or have a concrete reason that we can use as a guideline to deny the use of valid python syntax not only in this case but in future cases as well15:43
electrofelixwaynr: was going to suggest you skip changing the argparser stuff for now, and if you're happy with the suggested alternative in the etherpad I'll align the whole lot on that either at the end or by rebasing15:44
electrofelixI think it's more concern that I've seen problems with handling multi string text outside of docstring that often means you have to have zero indentation or use textwrap dedent to ensure consistency15:45
waynrfor consistency's sake I am going through and reformatting all the argparse code for subcommands since you expressed a preference in an earlier comment on consistency with regard to either aligning the first argument to add_argument with the opening brace for the method or starting the arguments on the next line15:45
waynrwhen do we have to use zero indentation?15:46
waynralso, this is the first time you've mentioned textwrap.dedent15:47
waynrthis sounds more like superstition than a rational reason to prefer one valid syntax over another15:48
electrofelixI've had to use it with python's logging class for nice formatting of the inline code and resulting output15:48
electrofelixargparse does appear to handle it through it's formatter class15:49
waynrwell i am not going o undo the work i've done in the past hour to make the code formatting consistent, if you want to add a patch at the end of this series of patches to get it just the way you want it i will +2 it, i really just want to move on to API issues and get out of this style preferences rabbit hole15:51
waynrargh...english--15:52
electrofelixah, sorry I should have said earlier to leave the style piece until later, assumed you were going to follow your own guideline from the etherpad15:52
waynri mean the work i've done in the past hour is to make the code formatting consistent, not that i don't want to make it consistent15:52
zxiiroLet's just merge it if there's no code issues and we can fix style in a later patch. I'm willing to help with rebasing if we have to15:53
electrofelixI think the primary concern about functionality was the use of '__' versus '_', apologies for letting the style drag you into the rabbit hole15:56
electrofelixwaynr: from now on, style issues follow your initial rule of thumb, as long as you're happy with the proposed style change, we agree on who will sort that out and rebase the remaining patches afterwards so we can focus on behaviour15:57
waynrokay, for now with this first patch at least i am attempting at the moment to achieve a modicrum of consistency, typos leading to test failures though15:58
waynralso addressing the code issues15:59
*** mrmartin has joined #openstack-sprint16:00
electrofelixoh, one trick, not sure if you're aware of it, you can use the rebase command to execute tox against each patch in the series, but adding a exec entry after each entry  and it'll stop at each one when there is a failure16:03
waynri'll give that a shot16:04
electrofelixJust popped it into the etherpad16:06
electrofelixwaynr: definitely to reduce the load on you, for anything after the first patch, I'm happy to tidy up the style issues, I have them all done for the argparser for the entire series16:10
zxiirocool i didn't know tox lets you run that way16:15
electrofelixprobably only worth doing it for the initial subset when targeting just the first set of patches16:16
waynrzxiiro: it's a git rebase capability, to run arbitrary commands between commits16:24
electrofelixwaynr: regarding my comment about how the argparser options object is passed into the config object, modified and then returned, are you happy for me to change that by adding in a patch to the series after that one to overhaul do_magical_things?16:25
waynrelectrofelix: i appreciate that offer re: style changes, it'll definitely make it easier for me to focus on API changes, bugs, and documentation which in my view should be the highest priority16:25
waynrelectrofelix: i'm not sure which comment you are refering to16:26
electrofelixhttps://review.openstack.org/#/c/319609/2/jenkins_jobs/config.py line 17116:26
electrofelixguess we're trying to work out the most efficient way of doing this16:27
waynremacs-- ....i suddenly can't use magit's time machine mode for some inexplicable reason16:27
electrofelixmaybe for the next session we try the following:16:29
electrofelixagree in principle the changes that make sense, then try to divide that out into items that people can work on independently to help, and then review again at the end to see if anything was missed16:29
electrofelixrather than starting on the first patch and trying to fix everything with that one before moving on16:29
electrofelixwaynr zxiiro does that make more sense?16:30
waynrthat sounds reasonable, might be difficult to subdivide the work in a way that doesn't lead to toe-stepping16:30
waynrif we can avoid style/formatting changes (put them in new patches at the end of the series) it might be less frustrating for me personally when we do step on each others' toes16:30
zxiiroI think it'd be better if we can figure out the dependency chain for them16:30
zxiirolike i'm sure not all the patches need tobe merged in order16:31
zxiirobut there's probably a few different flows16:31
waynrzxiiro: that's probably more true toward the end of the patch series16:31
zxiiroif we can break it down to a few buckets we can reassign the different buckets i think16:31
electrofelixmaybe after the first 8-10 patches that's doable16:31
zxiiroyeah16:31
electrofelixlooking around I think there is probably too much moving in those first ones16:32
waynrsince i probably have the best familiarity with this work overall, i can try to identify a few different flows in preparation for our next sprint16:34
electrofelixalso need a way of sharing some of the patches between ourselves if there is rework to be so we can show a suggestion without having to step on someones toes in submitting the patch series, it might not hurt for us to use a combination of github personal repos and gerrit to be able to directly share changes via multiple remotes?16:35
*** mrmartin has quit IRC16:38
*** mrmartin has joined #openstack-sprint16:39
waynrsure that sounds fine16:43
*** mrmartin has quit IRC16:46
*** mrmartin has joined #openstack-sprint16:47
*** mrmartin has quit IRC16:52
waynrwhew, comments in first patch mostly addressed16:58
waynrand updates submitted16:59
waynri have about 2 minutes to look at the second patch ;)16:59
electrofelixLooking through the first patch16:59
zxiirogreat, I need to head out shortly too for lunch16:59
electrofelixI'm working on making my suggested changes for the second patch, and I'll put that up in a github repo for consumption16:59
waynrelectrofelix: i also made some changes on that patch in this round of updates17:00
waynri kind of started reading comments on both at the same time, also some merge conflicts had to be resolved during rebase17:00
electrofelixthat's ok, I plan on re-syncing with your tree17:00
*** rfolco has joined #openstack-sprint17:01
zxiirowaynr: electrofelix I need to head out for lunch but I'll review the 1st patch when i get back17:01
waynri'll probably try to address some more of the feedback on the other patches tonight, definitely before the next sprint17:01
electrofelixprobably easier if I see a set of things that make sense if I can make those changes and share them with you and Thanh for each patch session rather than waiting until we meet up and then you're trying to make all the changes in one go17:02
*** rfolco_ has quit IRC17:02
waynrelectrofelix: that sounds fair, would you want to just post a link to your github patches in the etherpad under the corresponding change link?17:02
waynri'll leave the second patch alone until I see and have an opportunity to merge your changes17:03
electrofelixwaynr: so one thing I've identified, is we definitely shouldn't use multiline strings for log messages or exceptions. The argparser seems to handle it cleanly via it's formatter (provided we never have a need to switch to the RawTextFormatter), but logging and exceptions will not remove the extra newlines and whitespace added by the mutliline string17:06
electrofelixso for argparse it appears to be a stylistic dogma as to which you use, logging and exceptions it does impact what is displayed17:07
*** fergal_ has joined #openstack-sprint17:16
*** fergal_ has quit IRC17:16
zxiirowhat's happening? are we done for the day?17:39
electrofelixMostly, have you reviewed the patch?17:43
zxiirolooking now, the 1st one right?17:43
electrofelixyeap17:43
electrofelixI've +2'ed it17:43
electrofelixand I'm working on some tweaks to go on top of the second one17:44
zxiiroYeah I'm fine wit hthis patch. If there's issues we can fix it in subsequent patches. I think it's more important to get this moving at the moment.17:48
electrofelixSo we call this session a wrap, we've landed one, but I think more importantly we've worked out a better way of progressing next time.18:09
electrofelixas well as answered some of the concerns around dealing with style tidy up18:09
electrofelixwaynr: Here's the changes I was thinking about to untangle the config/parser objects so that the parser sets options in the config object instead of the config needing to know about the parser namespace at all18:27
electrofelixhttps://github.com/electrofelix/jenkins-job-builder/tree/untangle-config18:27
electrofelixhave a bit of work to rebase fully the remaining patches, but thought it would be worth showing the idea18:27
electrofelixI'll finish rebasing the remaining patches on Monday and we can discuss then if you think the idea makes sense18:33
*** electrofelix has quit IRC18:33
*** fergal_ has joined #openstack-sprint18:37
*** fergal_ has quit IRC19:01
*** fergal_ has joined #openstack-sprint19:47
*** baoli_ has quit IRC20:15
*** cdelatte has quit IRC20:26
*** fergal_ has quit IRC20:54
*** rfolco has quit IRC21:32
*** kien-ha has quit IRC21:54
*** rfolco has joined #openstack-sprint22:18
*** rfolco has quit IRC22:20

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