/srv/irclogs.ubuntu.com/2009/09/09/#launchpad-meeting.txt

=== mrevell is now known as mrevell-lunch
=== mrevell-lunch is now known as mrevell
barry#startmeeting15:00
MootBotMeeting started at 09:00. The chair is barry.15:00
MootBotCommands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]15:00
barryhello everybody and welcome to this week's ameu reviewer's meeting.  who's here today?15:00
noodles775me15:00
henningeme15:00
bacme15:00
danilosme15:00
barrygmb sends his apologies15:01
bigjoolsme15:01
adeuringme15:01
flacosteme15:02
henningejtv has better things^W^W^W cannot be here either ...15:02
henninge;)15:02
barryhenninge: thanks :)15:02
barryflacoste, gary_poster, salgado, cprov, allenap, mars, sinzui ping15:02
salgadome15:02
cprovme15:02
sinzuime15:02
flacostere-me15:02
allenapme15:02
gary_posterme15:02
barryflacoste: oops!15:02
barry[TOPIC] agenda15:03
MootBotNew Topic:  agenda15:03
flacostebarry: that's ok, you are used to pinging me15:03
barry * Roll call15:03
barry * Action items15:03
barry * UI review call update15:03
barry * `__iter__()` in model objects? [cprov, barry]15:03
barry * mkstemp()/open() combination leaks file-descriptors [cprov]15:03
barry * Guidelines changes for tests checking systems pre-requisites (specific umasks, app configurations) [maxb, cprov]15:03
barry * Invalid markup; The <script> tag requires a close tag (Do not: <script type="text/javascript" src="..."/>) [Curtis]15:03
barry * 4-space indents for CSS styles [barry]15:03
barry * Peanut gallery (anything not on the agenda)15:03
barry 15:03
barryflacoste: :)15:03
barry[TOPIC] action items15:03
MootBotNew Topic:  action items15:03
barry * gary_poster and barry will transfer review guidelines from the old wiki and old old wiki to the new wiki15:03
barrywe suck15:03
gary_posteryup, joint suckage15:04
barrygary_poster: that sounds icky :)15:04
gary_posterheh, yeah, I thought that after I read it too15:04
barry[TOPIC]  * UI review call update15:04
MootBotNew Topic:   * UI review call update15:04
barrygary_poster: let's get together later today to plan that out15:05
gary_poster+115:05
barryi was not on the ui review call because of the us holiday.  was anybody here on that call, and was anything interesting discussed?15:05
noodles775barry: it was canceled as there was only intellectronica jtv and myself.15:05
barrynoodles775: cool, thanks15:06
barry[TOPIC]  * `__iter__()` in model objects? [cprov, barry]15:06
MootBotNew Topic:   * `__iter__()` in model objects? [cprov, barry]15:06
barrycprov: do you remember what this one was about?15:06
intellectronicame too15:06
cprovbarry: well, it's about the how confusing it is to read code that iterate over a distroseries and get distroarchseries ;)15:07
barrycprov: so, it being more readable to do something like "for das in ds.distro_arch_series:" than "for das in ds"?15:08
bigjoolsare you saying __iter__ should be confined to collections?15:09
cprovbigjools: being more radical, I think we should never need __iter__ in content classes.15:09
bigjoolsthat's what I mean :)15:09
barrybigjools: i was going to say, object's that have only one natural iteration, but i think your rule is better15:09
cprovbigjools: iterate of a multiple-join (ish) property.15:10
cprovs/of/over, sorry.15:10
barrycprov: i think +1.  you'll never be confused by naming the property explicitly.  i can only think that maybe it would be okay for IFnordSet to have an __iter__ that iterates over IFnords15:11
sinzuiI agree15:11
cprovagreed15:12
barrybeauty.  any objections?15:12
barry5...4...3...2...115:12
barry[TOPIC]  * mkstemp()/open() combination leaks file-descriptors [cprov]15:12
MootBotNew Topic:   * mkstemp()/open() combination leaks file-descriptors [cprov]15:12
barry(got a few for cprov today :)15:12
cprovbarry: everyone know mkstemp returns and open file descriptor, right ?15:13
* barry does15:13
flacostefire15:13
cprovbarry: and if it is not bound to the file you open afterwards it won't be automatically released by python.15:14
cprovwhen you close the file.15:14
flacostewhy use mkstemp?15:14
flacostei usually prefer creating a temporary directory15:14
flacosteand creating files in it15:14
flacosteand removing the directory at end of test15:15
flacosteusing addCleanup15:15
barryflacoste: yes, and if you need a tempfile and don't want to hassle with a directory, you should probably close the fd right after mkstemp() and reopen the file name with open()15:15
cprovflacoste: that's a good point for testing use-cases15:16
cprovflacoste: soyuz uses temp files in production workflows as well.15:16
barry<cough>with-statement</cough> :)15:16
bigjoolshow's that python2.6 readiness coming along then barry? :)15:17
* barry looks at gary_poster and flacoste 15:17
gary_posterit's coming. :-) 2.5 first15:17
wgrantThe 2.5 status is actually pretty good.15:17
wgrantMostly benign failures.15:18
bigjoolsthen let's JFDI15:18
barrymy new machine arrives today (hopefully) and i'm going straight to karmic.  i'll be itchin' and bitchin' for 2.6 :)15:18
cprovanyway, the message I was trying to pass is: be aware of msktemp() ... open() callsites. They should be mkstemp()...os.close(fd)15:18
allenapbarry: Or use os.fdopen().15:18
sinzuibenign failures? Does it apologise before going belly up?15:19
barryallenap: yep; though i almost always want the filename for various purposes15:19
barrycprov: +1, thanks.  so, when you're reviewing code, watch out for mkstemp(), mkdtemp(), open() or anything else that acquires external resources.  ask your dev "are you properly releasing this resource, and if so, where?"15:20
allenapbarry: I think you get that with fdopen though? It returns a file object for the fd, and the second element of the tuple returned from mkstemp() is the filename.15:20
barryallenap: yep, if you want the file object and the filename15:21
barrycprov: thanks for this topic.  i have one more for ya15:21
barry[TOPIC]  * Guidelines changes for tests checking systems pre-requisites (specific umasks, app configurations) [maxb, cprov]15:22
MootBotNew Topic:   * Guidelines changes for tests checking systems pre-requisites (specific umasks, app configurations) [maxb, cprov]15:22
cprovIIRC, it was specifically about our test suite running on system with use a non-default umask (022)15:23
wgrant(and the devscripts config issue)15:23
cprovin lp.archivepublisher there as few tests that check files permission15:23
barrycprov: well, that's under user control, right?  or does our test suite set the umask?  are you aware of specific umask failures in our test suite?  i remember fixing a bunch of those when i first came on board because i use umask 000215:24
cprovbarry: I don't remember exactly which tests failed for maxb. Do you run the test suite locally frequently ?15:25
* maxb waves15:25
maxband reads scrollback15:26
barrycprov: i can't get through the whole thing on my current dev box.  we'll see about my new one (drive faster fedex!)15:26
maxbbarry: umask 0002 currently breaks some (one?) soyuz test15:26
barryin general though, i would say that any test that is umask sensitive is broken15:27
wgrantThere is only one.15:27
barrymaxb: is there a bug on that?  imo, it's a broken test15:27
maxbThe point of the action item is to suggest that the test guidelines should stipulate either that tests should set the appropriate environment, or should check and error clearly if they can't15:27
cprovbarry: right, I agreed, the test should adjust umask to the expected value.15:28
maxbI don't think there's a bug at present, /me scribbles note15:28
barrymaxb, cprov +115:28
sinzuithe tests or the code should set the mask? if there is a test for the mask, I believe the code should set it15:28
barryso, as you review branches, be aware of code that might be sensitive to environmental issues, and question whether the tests are fragile because of that15:28
barrysinzui: agreed15:29
barrycprov, maxb thanks for bringing this up.  anything else on this topic?15:30
cprovbarry: possibly, there is a pending change in our guideline.15:31
cprovbarry: we use to rely on a pristine ubuntu env for testing and deploying LP15:31
cprovbarry: from what we've discussed code sensitive to environment changes should set/ensure the expected configurations now.15:32
barrycprov: but umask is really part of the user env, not ubuntu env15:32
flacosteand even relying on a prisitine ubuntu env is broken15:33
cprovbarry: right, extent ubuntu env to 'default ubuntu user env'15:33
maxbRelying on a pristine environment to run the testsuite is developer-unfriendly15:33
flacosteexactly15:33
barrycprov: would you take an action item to update our guidelines with this change?15:33
cprovright, and that's the change that should be included in our guidelines.15:33
cprovbarry: yes, sure.15:34
barrycprov: great, thanks.15:34
barry[ACTION] cprov to update guidelines to clarify how code sensitive to env changes should be written15:34
MootBotACTION received:  cprov to update guidelines to clarify how code sensitive to env changes should be written15:34
barrythanks again for bringing this up15:35
barry[TOPIC]  * Invalid markup; The <script> tag requires a close tag (Do not: <script type="text/javascript" src="..."/>) [Curtis]15:35
MootBotNew Topic:   * Invalid markup; The <script> tag requires a close tag (Do not: <script type="text/javascript" src="..."/>) [Curtis]15:35
sinzuiThe HTML 4.x spec requires that the script element have a close tag.15:35
sinzuiDo not do this: <script type="text/javascript" src="..."/> because the template will not fix our mistake15:35
sinzuiI saw the compact form in the DSP index and added the issue to todays agenda15:35
intellectronicacan we lint for this?15:36
sinzuitwo hours later cprov reported that half the content of the apge was missing. I closed the tag and made it work15:36
sinzuiintellectronica: We need a HTML processor15:36
* sinzui is writing one15:36
intellectronicawe currently use xmllint, but we miss the opportunity to automatically discover things that are html15:36
sinzuiWe use a bastardised version my navellint script that I wrote 7 years ago15:37
noodles775wont a standard (x)html validator pick that up? (and help us get all our pages valid?)15:37
sinzuiI am now using an all python script that has a HTML validator15:37
noodles775:)15:37
sinzuinoodles775: comtact is always correct for XML. this is an issue of schema/DTD validity15:38
sinzuinoodles775: and this is really hard given that PT is generating  HTML, it is not HTML15:38
noodles775sinzui: yes, but I thought the w3c xhhtml validator pointed ... ah, ok.15:38
noodles775So we could validate pages as part of our stories - but that's a separate topic I guess.15:39
sinzuiWe know this has not happened often because Forefox hates it. The issue was fixed within a day of it landing.15:40
sinzuinoodles775: That is not a story though.15:40
barrysinzui: is it just the <script> tag or other tags too?15:40
sinzuiWe have a checker that runs over stanging15:40
noodles775True (just convenient given we've rendered the content)15:40
sinzui<script> is the only one that comes to mind.15:41
sinzuinoodles775: I do not15:41
barrycool15:41
sinzuinoodles775: I render content in view tests. stories just hop from link to link and verify messages that the user sees15:41
noodles775sinzui: yes - I don't mean that you output the content in the story (urgh), just that the time taken to render the content has already happened when you call click().15:42
sinzuinoodles775: another way of putting the issue is that users do not look at the source, we only care about the test that is seen and the links that are traversed15:42
noodles775Yes, I agree - it's not the place for validation.15:43
intellectronicai really don't think we should do validation in tests. that's what lint is fo15:43
sinzuinoodles775: given that content/markup is conditional in most templates, that does is using luck to test15:43
barrywe also often get false positives when linting our pts15:44
flacostewe could have a builder runs the test suite in validation mode15:44
noodles775intellectronica: sure, but if we wanted to do that, it would mean that lint would need render templates. It would be easier to simply run an external validator over lp.net, I think.15:44
sinzuiintellectronica: I agree. We want to trust the template engine makes sane markup. that requires up to create sane templates. This is really an issue where HTML 4.x is not XML.15:44
barryfolks.  we're out of time.  i don't think we'll solve this here, although let's keep sinzui's specific recommendation in mind.  we can talk more about pt validation on list15:46
sinzuiThere is also the issue were we do this: <p></p>; which is also invalid. a <p> must contain content15:46
barry#endmeeting15:46
MootBotMeeting finished at 09:46.15:46
intellectronicathanks barry15:46
barrythanks everyone and apologies for going over15:46
deryckthanks barry15:46
=== henninge is now known as henninge-bbl
=== cprov is now known as cprov-lunch
=== henninge-bbl is now known as henninge
=== salgado is now known as salgado-lunch
=== salgado-lunch is now known as salgado
=== cprov-lunch is now known as cprov
=== salgado is now known as salgado-afk

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