=== salgado is now known as salgado-brb
=== salgado-brb is now known as salgado
MootBotMeeting started at 09:00. The chair is barry.15:00
MootBotCommands Available: [TOPIC], [IDEA], [ACTION], [AGREED], [LINK], [VOTE]15:00
barryhello everyone and welcome to this week's ameu meeting.  who's here today?15:00
barryallenap: BjornT cprov gary_poster ping15:02
barryintellectronica: ping?15:02
barrysalgado: ping15:02
intellectronicabarry: i did apologise, no?15:03
barryintellectronica: you did.  sorry.  i mssed that15:03
barryintellectronica: thanks15:03
barrywell, i think it's a light day today so let's get to it15:03
barry[TOPIC] agenda15:04
MootBotNew Topic:  agenda15:04
barry== Agenda ==15:04
barry * Roll call15:04
barry * Peanut gallery (anything not on the agenda)15:04
barry * Action items15:04
barry * Mentoring update15:04
barryi'm going to jump around a bit...15:04
barry[TOPIC] action items15:04
MootBotNew Topic:  action items15:04
barry * barry to look into techniques for eliminating back-patching of schema types (avoiding circular imports)15:04
barryi actually did look into this and tried a few things, but they all failed15:04
barryi may do a very simple syntactic sugar branch for this but i might just drop this item15:05
barryping me if you're interested in the gory details :)15:05
barry * barry to add `pretty()` functions to reviewers docs15:05
barrynot done15:05
barry * flacoste to work on API reviewer cheat sheet15:06
marshe's at the team leads sprint15:06
barryi think flacoste probably didn't do this, and he's at tl sprint, so we'll just leave it15:06
* barry should type faster than mars15:06
barry[TOPIC]  * Peanut gallery (anything not on the agenda)15:06
MootBotNew Topic:   * Peanut gallery (anything not on the agenda)15:06
barrydo you guys have anything not on the agenda?15:07
bacbarry: abentley had a proposed item15:07
rockstarYea, but I can't seem to find him.15:07
barry * Should new classes be forbidden to use SQLObject compatibility layer, abentley15:07
barrybac: thanks15:07
barrylooks like abentley is away on #launchpad-code15:08
rockstarI think the answer is "Yes"15:08
barryrockstar: i agree15:08
barrybac: didn't you ping me yesterday about this?15:08
bacabentley wrote a new db class that i reviewed yesterday.  it was not using storm so i requested he modify it to use storm, as it is my understanding that new db work use the storm api.15:08
rockstarWe should deprecate the SQLObject compatibility layer altogether, and convert the old classes to Storm.15:09
bache objected on the grounds the storm api is not as nice as the compatibility layer.15:09
baci did not approve his branch pending the discussion he wanted to have here.15:09
* barry thinks it's nicer :)15:09
barryrockstar: +115:09
bacrockstar: that was my position15:09
rockstarbac, this is true, but Storm is a Canonical project, so we should be dogfooding and making bug reports, etc.15:09
marsbarry, storm is nicer? or the compatibility layer?15:10
bacrockstar: i totally agree.  it's unfortunate that aaron is not here to state his case.15:10
* barry likes storm15:10
rockstarI can't tell you how happy I am that the LP team is dogfooding reviews.  It's allowed us to make all sorts of changes.15:10
gmb+1 for Storm from me.15:10
bacFTR i am +1 on requiring new work be storm api15:10
rockstar+1 as well.  I think there's real value in dogfooding.15:10
barryi wish abentley was here too15:10
adeuring+1 too15:10
barry[VOTE] +1 to require all new classes to use the storm api15:11
MootBotPlease vote on:  +1 to require all new classes to use the storm api.15:11
MootBotPublic votes can be registered by saying +1/-1/+0 in the channel, private votes by messaging the channel followed by +1/-1/+0  to MootBot15:11
MootBotE.g. /msg MootBot +1 #launchpad-meeting15:11
MootBot+1 received from barry. 1 for, 0 against. 0 have abstained. Count is now 115:11
MootBot+1 received from adeuring. 2 for, 0 against. 0 have abstained. Count is now 215:11
MootBot+1 received from gmb. 3 for, 0 against. 0 have abstained. Count is now 315:11
MootBot+1 received from bac. 4 for, 0 against. 0 have abstained. Count is now 415:11
MootBot+1 received from allenap. 5 for, 0 against. 0 have abstained. Count is now 515:11
MootBot+1 received from gary_poster. 6 for, 0 against. 0 have abstained. Count is now 615:11
MootBot+1 received from salgado. 7 for, 0 against. 0 have abstained. Count is now 715:11
barrygoing once...15:12
barrygoing twice...15:12
bacbarry, i'll take an action item to update wiki to reflect the policy.  should it go in PSG?15:12
barryunanimous!  i'll post this to the ml and we can take objections there15:13
barry[ACTION] barry to post storm requirement to ml15:13
MootBotACTION received:  barry to post storm requirement to ml15:13
barryabentley: hi!  (almost) just in time :)15:13
abentleySorry I'm late.  Real Life stuff...15:14
barryabentley: we were just discussing your agenda item.  you have some 'splainin' to do :)15:14
barryabentley: no worries15:14
abentleyPersonally, I find the SQLObject compatibility shim a better API than the native Storm API.15:15
abentleySo I'd like to keep using it.15:15
abentleyBut I've been told that official policy dictates that we use native Storm foo for new classes.15:15
abentleySo I wanted to bring it up for discussion.15:15
barryabentley: what is it about the compatibility layer that you like better?15:15
abentleybarry: It doesn't require obtaining stores, it comes with get methods built-in, it comes with constructors built-in.15:16
barryabentley: there's unanimous consensus (here, at least) that we should be dogfooding and improving storm, using it for all new classes15:18
marsbarry, I think abentley is arguing that the SQLObject API *is* an improvement on top of Storm15:18
allenapObtaining a store explicitly is a good pattern imho, because we must sometimes decide between master and slave.15:19
barrymars: except that it's a horrible hack and i don't think it's even sqlobject-y any more15:19
abentleyallenap: Perhaps, but it's the wrong place to make that decision.15:19
marsbarry, ah15:19
abentleyallenap: You'd basically have to pass stores down a long call chain.15:20
barryin the common case, it's one extra line15:20
* al-maisan apologizes for being late15:20
barrystore = Store.of(self)15:20
barryokay, two.  you have to import Store15:20
allenapabentley: What barry said.15:20
rockstarbarry, but what about choosing between master and slave?15:20
gmbrockstar: It's still a one liner (imports notwithstanding). Slightly more complex15:21
barryrockstar: i recall a discussion of this months ago.  the outcome (iirc) is that you almost never really have to decide15:21
EdwinGrubbsrockstar: you normally let it automatically choose between master and slave based on whether it is a GET or POST request.15:21
abentleyYou need to choose between master and slave at the call site, not in the implementation of a getter.15:21
barryrockstar: and Store.of() will almost always DTRT15:21
rockstarEdwinGrubbs, so it will figure out the Store automatically?15:21
abentleybarry: RIGHT!  We are writing an extra line to no purpose at all.15:21
abentleyI think there are at least two import lines, maybe three, also.15:22
barryabentley: well, you can also write it like: Store.of(self).find(...)15:22
abentleybarry: Not in a classmethod or static method.15:22
barryabentley: sure, but those aren't the common case15:22
abentleyWhich is where you'd put a getter.15:22
abentleyThose are the common case if you're writing a getter.15:23
EdwinGrubbsrockstar: yes, if you have made a write (POST) in the last few minutes, it will use the master. You only need to choose the master manually, when you can't tell from the browser session that the user needs very up-to-date info. For example, registering a new user or logging in.15:23
barryabentley: really?  aren't getters usually instance methods?15:23
gmbbarry: They're instance methods for FooSet classes15:23
barrygmb: right15:23
gmbBut we want to get rid of unnecessary *Sets, IIRC.15:23
barrygmb: oh i see, you don't have a db object at that point.  yeah15:24
abentleygmb: I don't use FooSets.  Classes are perfectly good utilities.15:24
gmbabentley: ... which is why we want to get rid of unnecessary *Sets.15:24
abentleyInstead of class= you do component= and you're laughing.15:24
abentleybarry: I haven't been allocated time to improve the Storm API, and I'm not sure what kinds of changes are welcome.15:26
abentleybarry: It seems like the lack of constructors was a design choice, since all other ORMs do them.15:26
abentleybarry: So I don't think I'd be able to make Storm work as conveniently as the compatibility shim.15:27
barryabentley: this all comes down to basic dogfooding rule #1.  same as for bzr, merge proposals, lazr.config, and on-and-on15:27
marswe have dogfooding rules?15:27
* barry recalls a rather lengthy ml discussion about dogfooding recently :)15:28
marsok, I'll look it up15:28
barrymars: well, it's related to merge proposals and their emails15:29
marsbarry, ok, so what's rule #1 then?15:29
abentleybarry: You'll note that in that discussion I didn't say "we must not use ML", I said we should work toward not needed to use MLs.15:29
barrymars: i'm making it up as i go, but "we should dogfood our own technology and improve it"15:30
barryeven if that means sending a message to gustavo and/or the storm list with suggestions15:30
barryiow, it would be great for abentley to send an email explaining where he finds the native api to be less ideal so we can at least start a dialog about if/how to improve it15:31
barryabentley: i'm not saying your complaints about storm are without merit, just saying we should improve storm instead of punting15:32
barrythat's just my opinion though so if there's disagreement about that, please speak up!15:33
allenapbarry: +1 on not punting.15:33
abentleybarry: How about we not punt and change the shim into an explicit storm-for-launchpad library?15:33
marsabentley, you should look up the "Five Whys" from lean.  It's a quality practice.  I think you've asked why #1, but that leaves maybe four more :)15:34
barryabentley: the goal should be to eventually get that merged into storm.  unless there's compelling reasons to maintain our own shim i think the entire storm community should benefit from our experience15:35
abentleybarry: Sounds good to me.15:35
abentleyWe can call it "mildstorm"15:36
baci prefer squall15:36
* barry looks out the window and suggests "blizzard"15:36
barrymars: damn you again! :)15:36
abentleybarry: I hear ya.15:36
bacjust not "nor'easter" -- god i hate that15:37
barrysounds good.  abentley, start with an email to the ml.  let's get the specific issues on the table.  please cc gustavo15:37
bacabentley: a side-by-side comparison of the class your new class from yesterday may be a good example15:38
abentleyI take it not using the shim *really is* official policy?15:38
bacdoh, not writing english today15:38
barry[ACTION] abentley to email ml and gustavo with suggestions for improving storm15:38
MootBotACTION received:  abentley to email ml and gustavo with suggestions for improving storm15:38
barryabentley: for new classes, we really don't want to use the shim15:38
abentleybac: I'll update my branch accordingly.15:39
barrythanks.  good discussion.  anything else on this or any other non-agenda topic?15:39
bacabentley: thanks.  and thanks for bringing the discussion here.  it was very useful.15:39
abentleybac: Cool.15:40
barryok, one last thing before we break15:40
barry[TOPIC]  * Mentoring update15:40
MootBotVote is in progress. Finishing now.15:40
MootBotFinal result is 7 for, 0 against. 0 abstained. Total: 715:40
MootBotNew Topic:   * Mentoring update15:40
barryany update from mentors or mentats?15:40
barryno news is good news!15:42
MootBotMeeting finished at 09:42.15:42
barrythanks everyone!15:42
bacthanks barry15:42
abentleythanks, barry15:43
=== salgado is now known as salgado-lunch
=== salgado-lunch is now known as salgado
=== thumper_laptop is now known as thumper

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