[15:00] <barry> #startmeeting
[15:00] <MootBot> Meeting started at 09:00. The chair is barry.
[15:00] <MootBot> Commands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]
[15:00] <barry> hello everyone and welcome to this week's ameu reviewer's meeting.  who's here today?
[15:00] <bigjools> me
[15:00] <EdwinGrubbs> me
[15:00] <sinzui> me
[15:00] <deryck> me
[15:00] <henninge> me
[15:00] <mars> me
[15:00] <noodles775> me
[15:00] <henninge> jtv sends his apologies but he does need to sleep sometime ... ;-)
[15:01] <intellectronica> me
[15:01] <danilos> me
[15:01] <barry> adeuring: ping
[15:02] <adeuring> whoops, me
[15:02] <barry> allenap: ping
[15:02] <leonardr> me
[15:02] <barry> bac: ping
[15:02] <barry> BjornT: ping
[15:02] <allenap> barry: I'm on holiday this week.
[15:02] <gary_poster> me
[15:02] <flacoste> me
[15:02] <danilos> allenap: never mind that, you can lead the meeting :)
[15:02] <danilos> cprov: you?
[15:02] <mars> lol
[15:02] <cprov> me
[15:03] <BjornT> me
[15:03] <bac> me
[15:04]  * barry hates irc
[15:05] <barry> i'm just going to assume everyone here :)
[15:05] <barry> [TOPIC] agenda
[15:05] <MootBot> New Topic:  agenda
[15:05] <barry>  * Roll call
[15:05] <barry>  * Action items
[15:05] <barry>  * Mentoring update
[15:05] <barry>  * Including js script tags conditionally
[15:05] <barry>  * ReST headers in doctests -- gmb
[15:05] <barry>  * Permission explosions -- flacoste
[15:05] <barry>  * Peanut gallery (anything not on the agenda)
[15:05] <barry> [TOPIC] action items
[15:05] <MootBot> New Topic:  action items
[15:05] <barry>  * gary_poster to take importfascist and rSP() discussion to ml
[15:05] <gary_poster> barry: I will do that in the next week or we will take it off the list.
[15:06] <gary_poster> my apologies
[15:06] <barry> gary_poster: no worries.  thanks
[15:06] <barry>  * intellectronica to email list about higher JS branch limits
[15:06] <intellectronica> i did
[15:06] <barry> intellectronica: yep, thanks!
[15:06] <barry> [TOPIC] mentoring update
[15:06] <MootBot> New Topic:  mentoring update
[15:07] <barry> any feedback from our mentors or mentats?
[15:08] <barry> guess not :)
[15:08] <deryck> it's been going fine for me, not that that's much feedback. :)
[15:08] <barry> deryck: great to hear
[15:08] <barry> [TOPIC]  * Including js script tags conditionally
[15:08] <MootBot> New Topic:   * Including js script tags conditionally
[15:08] <barry> sorry, i forget who added this one
[15:08] <deryck> barry, I did, per a review you did of my branch.
[15:09] <barry> deryck: right!  it's been one of those weeks ;)
[15:09] <barry> deryck: take it away deryck the orchestra leader!
[15:09] <deryck> This is Just as a reminder to all that we should only include script tags when in devmode, so that we don't load js twice.
[15:10] <deryck> scripts are concat'ed into launchpad.js, so be careful of this, and watch for it in reviews.
[15:10] <abentley> me (sorry I'm late)
[15:10] <barry> deryck: can you describe the tal you used to load that conditionally?
[15:10] <gmb> me
[15:11] <deryck> barry, just a <tal:devmode condition="devmode"> with the scripts in that block.
[15:11] <flacoste> deryck: can it be added to the JS wiki page?
[15:11] <sinzui> The yahoo calendar widget is not in the compressed yui file, which does require a conditional in the head-epilogue.
[15:11] <deryck> flacoste, sure, I can do that.
[15:11] <barry> deryck: thanks
[15:11] <deryck> np :)
[15:12] <sinzui> Is it possible to get that script into something that is away "on"
[15:12] <flacoste> sinzui: can't we just add it?
[15:13] <sinzui> flacoste: I was tempted to do so last night. I'm not sure if the separation is historical or YUI2. I think I need a pre-imp call to understand the issue
[15:13] <flacoste> sinzui: let's have a pre-impl call later
[15:13] <sinzui> fab
[15:13] <barry> cool.  anything else on this topic?
[15:14] <barry> [TOPIC]  * ReST headers in doctests -- gmb
[15:14] <MootBot> New Topic:   * ReST headers in doctests -- gmb
[15:14] <gmb> Ah.
[15:14] <gmb> So, this came up on Monday.
[15:14] <gmb> First there was some confusion about whether we should use ReST or Moin style headers in  doctests.
[15:14] <barry> rest
[15:15] <gmb> Then, when bigjools and I had confirmed we should be using ReST, no one could remember why we had changed back to ReST from Moin
[15:15] <barry> but existing pages can be changed as you go, low priority
[15:15] <gmb> (having gone from ReST to Moin some time before)
[15:15] <sinzui> lp-dev-util/formatdoctest -p path/to/tests/*.txt will fix many. Edwin pointed out though the script uses the headers I use from gedit doctests. we can tweak the script to use gary's headers
[15:15] <gmb> barry: Right, but the point is that people are still confused about this, and the reasons for the change don't seem to have been communicated effectively.
[15:15] <barry> gmb: we're trying to standardize on rest since that's basically what the python community has standardized on
[15:15] <flacoste> well, they were
[15:15] <flacoste> but
[15:16] <flacoste> we didn't follow-through
[15:16] <flacoste> the idea is that there are no tools to process Moin syntax
[15:16] <flacoste> and we aren't really using Moin syntax at all anyway
[15:16] <gary_poster> I guess.  trying to make it casual and low-pain means that people didn't notice or remember
[15:16] <gary_poster> that is, I guess we didn't follow through
[15:17] <flacoste> the idea was to have a sphinx easy setup to browse all the doctests
[15:17] <sinzui> I think salgado or bac have test cleanup listed among their objectives. rs=sinzui to run the script and land the branch
[15:17] <flacoste> as a start
[15:17] <flacoste> and then start organizing it
[15:17] <flacoste> that's what we didn't follow-through on
[15:17] <gary_poster> that test cleanup sounds cool
[15:17] <gary_poster> I see
[15:18] <salgado> me
[15:18] <barry> it would also be nice if we could start using rest in our wikis :)
[15:18] <sinzui> salgado: are you late or volunteering to update all tests to ReST headers
[15:18] <gary_poster> or both! :-)
[15:18] <salgado> just late!
[15:19] <barry> flacoste, sinzui  can we put some action items on the list for this?  or is it all just so background/low priority that we won't get to it any time soon?
[15:19] <abentley> barry: We can start using rest in our wikis.
[15:19] <barry> abentley: really?  well, that would be cool.  also in our merge proposal cover letters :)
[15:20] <abentley> barry: Sure, moin has supported rest for years.
[15:20] <flacoste> barry: yeah, it's not really a priority at the moment
[15:20] <sinzui> barry: I can do it within the next 3 weeks. I will create a bug about it since I think we want to codify the header style in the script
[15:21] <flacoste> standardizing on what the python community uses is sufficient in itself imho
[15:21] <barry> flacoste, sinzui, abentley cool.  so, gmb does that answer the question? :)
[15:21] <flacoste> especially since it means that's what we are using in the lazr packages
[15:21] <flacoste> because of PyPi
[15:21] <gmb> barry: Yes, thank you. I'll update the style guid to include some details as to the whys and wherefores.
[15:21] <gmb> *guide
[15:21] <barry> gmb: awesome, thanks
[15:21] <abentley> barry: Just specify #FORMAT rst  at the top.
[15:22] <barry> [ACTION] gmb to update style guides to clarify why we're standardizing on rest
[15:22] <MootBot> ACTION received:  gmb to update style guides to clarify why we're standardizing on rest
[15:22] <sinzui> BTW I had a merge conflict into lazr.restful because the headers in the tests are different
[15:22] <barry> abentley: rock.  i will try that when i update the minutes of this meeting :)
[15:22] <barry> gmb: thanks, anything else on this topic?
[15:22] <gmb> Nope.
[15:22] <gmb> That's all.
[15:23] <barry> [TOPIC]  * Permission explosions -- flacoste
[15:23] <MootBot> New Topic:   * Permission explosions -- flacoste
[15:23] <flacoste> ok
[15:23] <flacoste> this is a reminder
[15:23] <flacoste> we should try to minimize the number of special permissions
[15:23] <flacoste> so in reviews, everytime you see somebody define a new permission
[15:24] <flacoste> you should ask why one of the regular one isn't used
[15:24] <flacoste> the model is
[15:24] <flacoste> View -> Append -> Edit -> Admin
[15:24] <flacoste> there is also the Moderate permission which sits above Append at the level of Edit
[15:24] <flacoste> those are our core permissions
[15:25] <flacoste> now, if you look at permissions.zcml, you'll see that there are a lot of other special permissions
[15:25] <flacoste> sometimes these are unvoidable, but many times they are not
[15:25] <flacoste> for example, the ProjectReview special permission was introduced recentely
[15:26] <flacoste> i think there is no reason why launchpad.Moderate couldn't have been used there
[15:26] <flacoste> so as reviewer, be though on the introduction of new permission
[15:26] <barry> flacoste: do we have any plans to do an audit and clean up of those special permissions?
[15:26] <bac> flacoste: i'll follow up with you to clean that one up
[15:27] <flacoste> yeah, i think we'll need to do an audit at some point and see if we can remove some of those
[15:27] <flacoste> but starting with a lock-down will make the audit easier :-)
[15:27] <barry> flacoste: cool
[15:27] <flacoste> i'll update the reviewers checklist with this reminder
[15:28] <flacoste> not sure if that page is still checked often though
[15:28] <barry> flacoste: also, what is the root cause for adding new special permissions?  is it because we don't (as a group) have a good understanding of how the existing permissions work?
[15:28] <flacoste> some of that
[15:28] <flacoste> but also, the way permissions are mapped to roles is kind of ad-hoc
[15:28] <flacoste> (through the IAuthorization interface)
[15:29] <flacoste> you have to inspect code to understand who get to do what
[15:29] <flacoste> where
[15:30] <barry> flacoste: which isn't really feasible when you're working out a new feature
[15:30] <mars> flacoste, so, would centralizing the permissions and capabilities of each make them easier to use?
[15:30] <flacoste> they are already kind of centralised
[15:30] <flacoste> in one file
[15:30] <flacoste> but that's not the way things work
[15:30] <flacoste> permission are granted on a per-context level
[15:31] <flacoste> that's why it's possible to not define new ones
[15:31] <flacoste> but reuse the semantics of existing ones
[15:31] <flacoste> for example, i think the Moderate permission is really only defined on the Question object
[15:32] <flacoste> which means it's easy to reuse the semantic for project review
[15:33] <barry> flacoste: maybe a brief overview (largely what you wrote above) would be useful in the dev wiki?  could you add that when you update the reviewer docs?
[15:33] <flacoste> sure
[15:33] <barry> flacoste: thanks!
[15:34] <barry> [ACTION] flacoste to update reviewer docs and dev wiki re: permission implosion
[15:34] <MootBot> ACTION received:  flacoste to update reviewer docs and dev wiki re: permission implosion
[15:34] <flacoste> explosion!
[15:34] <flacoste> proliferation
[15:34] <flacoste> whatever
[15:34] <flacoste> eot
[15:34] <barry> :)
[15:34] <barry> flacoste: thanks, great topic
[15:34] <barry> [TOPIC]  * Peanut gallery (anything not on the agenda)
[15:34] <MootBot> New Topic:   * Peanut gallery (anything not on the agenda)
[15:34] <barry> okay, the floor is open, does anybody have anything else?
[15:34] <intellectronica> i wanted to talk briefly about generating js
[15:34] <barry> intellectronica: go ahead
[15:35] <intellectronica> from time to time you'll need to generate javascript code and values to embed in a page
[15:35] <intellectronica> say, when you want to initialise a widget or call a function using values you have when you render the page
[15:35] <intellectronica> two important things to remember:
[15:36] <intellectronica> 1. avoid using zpt for doing that. it's clumsy and hard to maintain. do the work in the view code in python, expose it as a property and include it in the template
[15:37] <intellectronica> 2. always use simplejson to serialize python values into javascript code. it's so easy to do, and you have no chance of getting better result by preparing the string yourself
[15:37] <intellectronica> that's it
[15:37] <barry> intellectronica: thanks very much.  i learned this lesson the hard way (and thanks for your patch :)
[15:38] <mars> intellectronica, is there a specific pattern we have to follow to get the <script> tag and it's contents in there from the view?  Because zpt tries to "help" with script tags...
[15:38] <sinzui> I am tempted to try a 3rd way, the view reads the initialization script, adds the setup values and exposes it as a property so that the JS is not in the python
[15:38] <noodles775> sinzui: +1
[15:39] <intellectronica> mars: <script tal:content="structure view/js_code" /> should do the trick, i think
[15:39] <barry> sinzui: i'm not sure i understand, can you clarify?
[15:39] <intellectronica> sinzui: please explain more. i don't understand
[15:39] <sinzui> I am hesitant to start this because I want to ensure there are sane values in the initialization script for YUI-test
[15:39] <noodles775> I'm finding it hard to see a case where you'd need to generate js, rather than the js initialising from classes/content on the page (but just point me where)
[15:40] <barry> sinzui: if you'd like to defer to next week or the ml, that's cool
[15:40] <intellectronica> noodles775: yes, that's another way to do that. still you have to put these values in the page
[15:41] <noodles775> intellectronica: yes, but that can be done semantically (so the page represents the state that the JS initialises from)
[15:41] <sinzui> intellectronica: I will follow up on the list. I just want the keep js and python and html separated.
[15:41] <intellectronica> noodles775: i don't understand. i think you guys are ahead of me
[15:42] <intellectronica> sinzui: cool, i look forward
[15:42] <barry> sinzui: it's the intersection of those three axes of evil where things get interesting
[15:42] <noodles775> intellectronica: no, I probably just haven't seen an example where it's required. I'll watch for the mailing list discussion too :)
[15:42] <sinzui> interesting? you mean "knives out".
[15:42] <mars> sinzui, I would love to see a more in-depth statement of the problem, issues, solution, and how it might address them on the list
[15:42] <barry> :)
[15:42] <barry> sinzui:  thanks.  we have 3 minutes left so moving that to the ml would be great
[15:43] <barry> any last minute items?  otherwise, we're done
[15:43] <barry> 5
[15:44] <barry> 4
[15:44] <barry> 3
[15:44] <barry> 2
[15:44] <barry> 1
[15:44] <barry> #endmeeting
[15:44] <MootBot> Meeting finished at 09:44.
[15:44] <barry> thanks everyone, great meeting today
[15:44] <abentley> barry: Thanks!
[23:27] <barry> #startmeeting
[23:27] <MootBot> Meeting started at 17:27. The chair is barry.
[23:27] <MootBot> Commands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]
[23:27] <barry> #endmeeting
[23:27] <MootBot> Meeting finished at 17:27.
[23:30] <barry> #startmeeting
[23:30] <MootBot> Meeting started at 17:30. The chair is barry.
[23:30] <MootBot> Commands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]
[23:30] <barry> jml, thumper, mwhudson ping
[23:30] <jml> hi
[23:30] <mwhudson> hi!
[23:30] <thumper> jo
[23:31] <barry> how are y'all doing?  earthquake + tsunami didn't bother you did it?
[23:31] <thumper> didn't even feel it
[23:31] <mwhudson> given the magnitude it seems to have caused amazingly little damage
[23:31] <mwhudson> and only a baby tsunami
[23:31] <barry> good to hear!
[23:32] <barry> i had a friend from pittsburgh who moved to san fran describe his first earthquake
[23:32] <barry> said, "they always tell you never run outside".  when it first hit, he said he found himself outside before he even knew what was going on ;)
[23:33] <mwhudson> (the epicentre really is in the ass-end of nowhere too, that helps)
[23:33] <jml> the epicentre is in Palmy? :P
[23:33] <mwhudson> hah
[23:34] <barry> inside joke? :)
[23:34] <barry> anyway...
[23:34] <mwhudson> i live in palmy
[23:34] <barry> oh :)
[23:34] <mwhudson> it's not the most exciting place in the universe
[23:34] <mwhudson> indeed, anyway...
[23:34] <barry> do you guys have burning issues, or do you want me to start with a review of ameu?
[23:34] <mwhudson> review of ameu sounds good
[23:35] <jml> review please
[23:35] <jml> all issues have been safely coated in asbestos
[23:35] <barry> lessee...
[23:35] <barry> deryck brought up an issue from a review about only loading javascript files in devmode, since in prod they're always included in launchpad.js
[23:36] <barry> he'll write about that in the js wiki page
[23:36] <barry> gmb brought up a question about doctest format, moin or rest, but since you guys all hate doctests, i guess that one doesn't matter :)
[23:37] <mwhudson> well
[23:37] <mwhudson> if our documentation is going to be written in some markup
[23:37] <mwhudson> it would be nice if this was used somehow
[23:37] <barry> mwhudson: we're rest all the way baby!
[23:38] <mwhudson> i don't really have an opinion on moin vs rest, pick one and stick to it though
[23:38] <barry> but existing doctests can be updated as we go
[23:38] <barry> definitely rest, for a host of reasons outlined in the detailed minutes
[23:38] <barry> gmb will update the relevant wiki pages
[23:38] <mwhudson> if we setup a sphinx-y type thing somewhere and actually use it, it might encourage us to make our doctests better documentation
[23:38] <mwhudson> (gasp!)
[23:38] <barry> i've also filed an rt to get our dev wiki to support rest
[23:39] <barry> mwhudson: +1 is not plussy enough
[23:39] <jml> barry, if Launchpad gets a wiki, do you anticipate *it* supporting rest?
[23:39] <barry> jml: i do
[23:39] <barry> at least
[23:39] <thumper> we're going to hand craft a wiki aren't we?
[23:40] <thumper> I thought we were going to build one on bzrlib
[23:40] <barry> thumper: that's been on the wishlist for at least 2 years
[23:40] <jml> like someone has already done with Hg :(
[23:40] <thumper> right
[23:40] <barry> :(
[23:40] <jml> gosh that was disappointing watching that lightning talk at europython and thinking "we've had this idea for at least two years now"
[23:41] <jml> anyway
[23:41] <barry> last review item: flacoste brought up the issue of "permission explosion", the tendency to create too many special permissions
[23:41] <barry> instead of reusing the core ones
[23:41] <thumper> barry: for example?
[23:41] <barry> thumper: let me get my notes...
[23:42] <jml> barry, presumably flacoste noticed this trend by inspecting our highly auditable zcml or perhaps looking at a permission control panel? :P
[23:42] <barry> Jul 15 10:23:44 <flacoste>	we should try to minimize the number of special permissions
[23:42] <barry> Jul 15 10:23:59 <flacoste>	so in reviews, everytime you see somebody define a new permission
[23:42] <barry> Jul 15 10:24:07 <flacoste>	you should ask why one of the regular one isn't used
[23:42] <barry> Jul 15 10:24:12 <flacoste>	the model is
[23:42] <barry> Jul 15 10:24:22 <flacoste>	View -> Append -> Edit -> Admin
[23:42] <barry> Jul 15 10:24:41 <flacoste>	there is also the Moderate permission which sits above Append at the level of Edit
[23:42] <jml> (sorry, I think I prepared the coffee extra bitter this morning).
[23:42] <barry> Jul 15 10:24:52 <flacoste>	those are our core permissions
[23:43] <barry> Jul 15 10:25:19 <flacoste>	now, if you look at permissions.zcml, you'll see that there are a lot of other special permissions
[23:43] <barry> Jul 15 10:25:38 <flacoste>	sometimes these are unvoidable, but many times they are not
[23:43] <barry> Jul 15 10:25:57 <flacoste>	for example, the ProjectReview special permission was introduced recentely
[23:43] <barry> Jul 15 10:26:07 <flacoste>	i think there is no reason why launchpad.Moderate couldn't have been used there
[23:43] <barry> Jul 15 10:26:28 <flacoste>	so as reviewer, be though on the introduction of new permission
[23:43] <thumper> we have an Append permission?
[23:43] <jml> yeah.
[23:44] <thumper> huh
[23:44] <thumper> didn't know that
[23:44] <mwhudson> i was more or less aware of this point
[23:44] <barry> flacoste will update the relevant wiki pages with details
[23:44] <jml> neither did I.
[23:44] <jml> barry, and how would we *find* the relevant wiki pages?
[23:44] <mwhudson> i haven't reviewed or written any code to do with permissions in ages though
[23:44] <barry> jml: they should be on the dev wiki <wink>
[23:45] <jml> well that narrows it down :\
[23:45] <barry> foundations also wants to audit and simplify our permissions
[23:45] <barry> jml: yeah
[23:45] <barry> anyway, that's all i have from ameu.  what's on your mind?
[23:45] <mwhudson> well at least there's less obsolete crap on the dev wiki than launchpad.c.c
[23:45] <jml> yeah. that's a very good thing.
[23:46] <thumper> I don't have anything just now
[23:46] <mwhudson> nothing in particular
[23:46] <thumper> apart from a general ORM annoyance
[23:46] <barry> we need some interns to garden our wikis :)
[23:46] <thumper> w.r.t. permissions
[23:46] <jml> nothing from me, apart from general build process annoyance :)
[23:46] <mwhudson> the usual trepidation about how we're all supposed to be focused on a not-yet designed ui
[23:46] <jml> barry, with respect, no.
[23:47] <barry> jml: you don't like interns?
[23:47] <jml> barry, we need a little bit of bootstrapping to put some kind of structure in place, and we need developers to be dissatisfied with simply getting an answer to their question.
[23:48] <barry> jml: yeah.  but wiki editing is pretty low on people's list of things to do
[23:49] <mwhudson> there's something about wiki editing that always infuriates me
[23:49] <jml> barry, it's not wiki editing, it's working in a distributed team.
[23:49] <mwhudson> "edit this section" like media wiki would help, i think
[23:49] <barry> mwhudson: the fact that textarea sucks?
[23:50] <mwhudson> barry: partly yeah
[23:50] <jml> mwhudson, +1
[23:50] <barry> that would be nice.  it's all text does make things a bit better (not great though)
[23:51] <barry> well, that's all i have anyway
[23:51] <jml> likewise.
[23:51] <mwhudson> if we end up with sphinx for our documentation, we should use that more and the wiki less maybe>
[23:51] <mwhudson> ?
[23:51] <mwhudson> but enough directionless rambling on this topic
[23:51]  * mwhudson is done
[23:51] <barry> mwhudson:  possibly.  i'm digging sphinx a lot lately
[23:52] <barry> cool.  i guess we're done.  thanks guys
[23:52] <barry> #endmeeting
[23:52] <MootBot> Meeting finished at 17:52.
[23:52] <jml> thanks barry