/srv/irclogs.ubuntu.com/2013/03/20/#juju-gui.txt

frankbanhi rogpeppe: I am fixing the branch, and I was thinking about the AuthName method you suggested.09:35
rogpeppefrankban: ok09:35
frankbanrogpeppe: especially in relation to bug 115671509:35
_mup_Bug #1156715: Replace EntityName() with something else. <juju-core:Triaged> <juju-gui:Triaged> < https://launchpad.net/bugs/1156715 >09:35
rogpeppefrankban: was it william's suggestion to report that bug?09:36
rogpeppe(out of interest)09:36
frankbanrogpeppe: if we are going to replace EntityName with something better (e.g. GlobalName, APIName, ExternalName...), maybe it's worth making that change contextually09:36
rogpeppefrankban: i'm not sure09:37
frankbanrogpeppe: I proposed to work on that once the annotations stuff is ready. IIRC, he suggested to find a better name for that method09:37
rogpeppefrankban: the problem is that now we've got two methods now: State.Entity and State.Authenticator, and we can't just assume that the names are the same for each09:41
rogpeppefrankban: ah, we've lost State.Entity, i see09:42
frankbanrogpeppe: you mean State.Annotator and State.Authenticator09:42
rogpeppefrankban: yeah09:42
rogpeppefrankban: the problem is that the same "get name" method isn't necessarily appropriate for both09:43
rogpeppefwereade: what are your thoughts here?09:44
rogpeppefwereade: i'm suggesting that entities that can be returned from State.Authenticator have an AuthName method; and (if needed) entities that can be returned by State.Annotator have an AnnotatorName method. both methods would simply return the entity name as it is currently. i *think* this is what you might have suggested before.09:45
fwereaderogpeppe, +109:46
fwereaderogpeppe, I think it's better to have the two clear names for the two distinct contexts -- they can still directly share an implementation09:47
frankbanrogpeppe, fwereade: ok. in this branch the AnnotatorName is not defined or required. We just include the EntityName() method in ad-hoc interfaced for tests. No problem in introducing an AuthName for authenticators, and no problem in closing that bug as invalid or wontfix. Sound good?09:49
fwereadefrankban, I'd like to be consistent across Auth and Annotate, and ideally to drop the string EntityName across the board, but I'm not sure if that's a reasonable request in this context09:50
fwereadefrankban, are there lots of clients using EntityName that aren't clearly asking in either an auth or an annotate context?09:51
frankbanfwereade: I'd have to take a look, I don't think so, I guess EntityName is only used in the API context, and in the API we just have annotators and authenticators. Maybe rogpeppe can confirm.09:53
rogpeppefwereade, frankban: actually EntityName is used in other contexts too09:54
fwereadefrankban, hmm, I think it might be too big09:54
rogpeppefwereade: in particular, it's used in the original way that it was created (to talk about a state entity in general, that might be a unit or a machine)09:55
fwereadefrankban, rogpeppe: I think that if we're adding AuthName, though, I rather feel we should fix the instances of EntityName that are really AuthNames09:55
rogpeppefwereade: sure09:55
fwereaderogpeppe, I may be changing my mind here09:56
* rogpeppe still thinks that a single EntityName method makes sense (and saves us code)09:56
fwereaderogpeppe, I think your motivation is sane but the name "EntityName" is not helpful09:57
fwereaderogpeppe, can we reconsider the list of possibly-sane alternatives?09:58
rogpeppefwereade: ok09:58
frankbanfwereade, rogpeppe: so, bug 1156715 is still valid09:58
_mup_Bug #1156715: Replace EntityName() with something else. <juju-core:Triaged> <juju-gui:Triaged> < https://launchpad.net/bugs/1156715 >09:58
fwereaderogpeppe, I am feeling a gentle pull towards GlobalName but this opinion is not held strongly09:58
rogpeppefwereade: i don't like GlobalName because it's not global - it's only "global" with respect to a given state.09:59
rogpeppefwereade: and in the future it's quite possible we might have *real* global (including uuid) names09:59
rogpeppefwereade: how about ExtName ?10:03
fwereaderogpeppe, true; hmm. LongName? :)10:03
rogpeppefwereade: it's not too long, and abstract enough that it doesn't have any significant unwanted connotations10:04
rogpeppefwereade: TaggedName ?10:04
fwereaderogpeppe, I could live with that :)10:04
rogpeppefwereade: not that keen on LongName, i don't think10:05
rogpeppenor on TaggedName really10:05
fwereaderogpeppe, fair enough, but ExtName is too unclear IMO10:05
fwereaderogpeppe, Nametag() :)10:06
rogpeppefwereade: it's only unclear if it's documented unclearly IMHO10:06
rogpeppefwereade: Tag() :-)10:06
fwereaderogpeppe, hum, yeah, that's not bad, is it?10:06
rogpeppeState.Authenticator(tag string) (Authenticator, error)10:07
fwereaderogpeppe, we'll want to fix a couple of things like DeployerName to DeployerTag but I think it works nicely10:07
rogpeppefwereade: yeah, i could live with that10:08
rogpeppetype Tagger interface {Tag() string}10:08
fwereaderogpeppe, that SGTM, if you can live with it10:08
frankbanfwereade, rogpeppe: so, should the Tagger interface be embedded in Authenticator and Annotator?10:09
fwereadefrankban, yeah, it seems sensible I think10:09
rogpeppefrankban: i don't think so, otherwise you won't be able to do interface { Authenticator; Annotator }10:09
fwereaderogpeppe, oh, blast10:10
fwereaderogpeppe, well10:10
frankbanrogpeppe: so TaggedAuthenticator, TaggedAnnotator?10:10
rogpeppefwereade: but i have no problem with type TaggedAnnotator interface { Tagger; Annotator}10:10
fwereaderogpeppe, how often do we want both features in play at the same time?10:10
rogpeppefwereade: i don't want to preclude i10:10
rogpeppet10:10
fwereadefrankban, rogpeppe: ok, fair enough10:11
rogpeppefwereade: in general, other than at leaf level, you want either all-embedded or all-method interface types, i think.10:11
fwereaderogpeppe, yeah, sounds sane, ++composability10:12
rogpeppefwereade: exactly10:12
frankbanrogpeppe: i.e. in the API layer, we will always use Tagged(Authenticator|Annotator)10:12
frankban?10:12
rogpeppefrankban: yes, and i think that the State.Authenticator should return TaggedAuthenticator10:12
frankbanrogpeppe: cool10:13
frankbanrogpeppe: and the same for State.Annotator i guess10:13
rogpeppefrankban: yup10:13
frankbanrogpeppe, fwereade: what do you think about: 1) I land my current branch as is, with minor fixes (it's well over 1000 lines of diff) 2) I change that bug to be this Tag() and Tagger refactoring 3) I start working on that new bug, also replacing all the NamedAuthenticators and Annotators used in tests10:15
fwereadefrankban, +110:16
rogpeppefrankban: i think that's a reasonable approach, except i'd like to see the entityName field go10:16
rogpeppefrankban: and i think that's an easier fix than making the code access it safely.10:17
rogpeppefrankban: (so it would use EntityName as i suggested in the review)10:17
rogpeppefrankban: and then it would change to use Tag in the later branch10:18
frankbanrogpeppe: you mean in apiserver.go? so do you want me to temporarily add the EntityName to the Authenticator interface>10:18
rogpeppefrankban: i think that would be fine10:18
frankbanrogpeppe, fwereade: thanks, I think we have a plan.10:18
rogpeppefrankban: wonderful10:19
fwereadefrankban, sgtm10:22
frankbanrogpeppe: could you confirm those notes are correct? https://bugs.launchpad.net/juju-gui/+bug/1156715/comments/110:51
_mup_Bug #1156715: Replace EntityName() with something else. <juju-core:Triaged> <juju-gui:Triaged> < https://launchpad.net/bugs/1156715 >10:51
rogpeppefrankban: yup, seems good. there are other knock on effects of changing EntityName - various places use it and will need to change10:53
frankbanrogpeppe: isn't enough s/EntityName/Tag for these cases?10:59
rogpeppefrankban: more or less - there are some variable and field names that will want renaming too11:00
frankbanrogpeppe: maybe we'll need to take care of this case by case, with your help11:00
rogpeppefrankban: it should be fairly obvious, i hope - recursive grep -i entityname, and fix11:01
frankbanrogpeppe: sounds good11:02
frankbanrogpeppe: reproposed, would you like to take another look?11:19
rogpeppefrankban: will do11:19
frankbanthanks11:21
=== teknico__ is now known as teknico
BradCrittendenguihelp: in go, what is the relationship between packages and directories?  in apiserver there is "package apiserver" and "package apiserver_test" and that is a-ok.  if i add another package in that directory it complains.  anyone here know?12:32
gary_posterI thought there was no connection, so obviously I'm no help12:33
BradCrittendengah, my stupid nick12:33
=== BradCrittenden is now known as bac
=== bcsaller__ is now known as bcsaller
=== teknico_ is now known as teknico
hazmatbac, if your adding another test i suggest reusing apiserver_test12:39
hazmatin general my understand is that its 1 to 1 directory containing src to pkg  with dirname == pkg at least by convention, and that splitting out tests basically allows for stripping it from the binary and is specially handled by the test runner conventions.12:42
bachazmat: i understand all of that from a hygiene perspective.  i'm trying to understand the rules.  it clearly isn't 1:1 so i'm confused why i cannot create a separate package, even if it is a bad idea.12:47
hazmatbac i think <package>_test is handled distinctly12:48
hazmatby the same convention that <name>_test.go is12:48
bacok12:48
hazmatbut that's guess work on my part.. 12:50
rogpeppeteknico: did you run go test in your recent branch before submitting?13:03
rogpeppeteknico: because it broke trunk and i'm can't see how the tests could ever have passed... :-)13:04
hazmatrogpeppe, any comments on bac's question above re package naming13:04
jcsacketthatch: what sort of thing should i be looking for if tests pass under test-debug but fail under test-prod in the beforeAll with an apparent dependencies problem?13:05
jcsackette.g. "extend failed; check dependencies."13:05
jcsacketti can't find anything missing in a requires, nor in the yui.use13:05
rogpeppebac: hazmat is right. there can only be x and x_test in a given directory13:05
rick_h_jcsackett: make sure you've pulled from trunk recently. 13:05
teknicorogpeppe, I did run tests, and I plead guilty of insufficient scrutiny, because I did see failures that I interpreted as intermittent and unrelated13:05
jcsackettrick_h_: just merged, no difference.13:07
teknicorogpeppe, what's the overall tests status? are all of them supposed to pass all of the time, currently?13:07
rick_h_jcsackett: make sure you make clean-all and rebuild as well. I guess it was a problem fixed on monday. 13:07
rogpeppeteknico: yes13:07
rick_h_jcsackett: and verify that tests pass on trunk if they still fail13:08
rogpeppeteknico: but with your branch as submitted, it cannot have passed the tests even once :-)13:08
benjithe age-old story of untrusted tests; this is one of the reasons that tests need to be absolutely rock-solid13:08
rick_h_jcsackett: I had a mess around tests like this yesterday I was going to bring up the on the stand up13:08
rogpeppeteknico: if you see a test failure, we want to know about it!13:08
bacthanks rogpeppe13:08
teknicorogpeppe, right, I will make a point to let you know :-)13:09
teknico(not about the failures in my code, though ;-) )13:09
teknicoor rather, in my changes13:10
rogpeppeteknico: BTW ISTM that both opClientAddRelation and opClientDestroyRelation are bogus, because neither of them undo the operation that they've performed.13:10
teknicorogpeppe, uhm. bac might be interested too ^^13:10
rogpeppeteknico: i'm not sure when DestroyRelation came in. i should've been reviewing more branches, sorry!13:10
teknicorogpeppe, very recently too13:11
bacrogpeppe: oopsie13:11
bacrogpeppe: that one had lots of eyes on it.  sorry you didn't get a chance to weigh in and catch that omission13:11
teknicoit'll teach me landing changes right before lunch, ttyl :-)13:12
rogpeppebac, teknico: in general, the func return from the op* functions is to reset the state back to the original. so if you make a successful change, you need to return a function to undo that change.13:12
rogpeppei know it's awkward, and it would be nicer just to reset the whole thing each time, but unfortunately that's prohibitively slow.13:13
teknicorogpeppe, ISTR you mentioning that most op* functions could go away anyway13:13
jcsackettrick_h_: ok, i'll deal with email till standup.13:13
rogpeppeteknico: i discussed it with fwereade_ and he reckoned that it was worthwhile keeping them in13:13
teknicorogpeppe, good to know, thanks13:14
hatchjcsackett: get the problem fixed?14:00
jcsacketthatch: not yet. i'm double checking that the right modules are in my require14:00
hatchok what you want to do is `make clean-all` `sh test-server.sh prod true`14:05
hatchthen if you have dependency issues they will show up right away in those tests14:05
hatchfrankban am I supposed to know what your email is about? Or did you sent it to the wrong person? :)14:07
frankbanhatch: what email?14:08
hatchWilliam and Roger agreed on using Tag().  ....14:08
frankbanhatch: that's a comment on a bug14:09
hatchodd...it just came through as an email from you14:09
hatchheh14:09
hatchok no problem :D14:09
hatchbcsaller: did you end up checking out my branch last night?14:11
bcsallerhatch: I did, but I haven't written anything up 14:12
hatchoh ok - well we can chat in a hangout to save you the typing if you like14:12
bcsallerhatch: the way you assign _nsRouter to juju isn't how we typically do things though, you'd pass that down as an attribute. Its ok to attach constructors to the namespaces but usually not instances14:14
hatchYeah I didn't like that either but that fn is being used in so many places that it's quite a lot of passing around for a single fn14:14
hatchI was almost thinking that we need a Y.juju.utils object14:15
jcsackettrick_h_: you see anything this file is missing for its require? http://bazaar.launchpad.net/~jcsackett/juju-gui/tab-widget/view/head:/app/widgets/tabview.js14:16
jcsackettrick_h_: this is the testfile, as well: http://bazaar.launchpad.net/~jcsackett/juju-gui/tab-widget/view/head:/test/test_tabview.js14:16
=== frankban_ is now known as frankban
hatchjcsackett: does it actually say 'verrify dependencies' ?14:17
jcsacketthatch: Error: extend failed, verify dependencies14:17
jcsackettit's dying in the before() method in my test.14:17
hatchok that means the Y.Base failed because it can't extend Y.Tab14:17
hatchY.Base.create14:17
hatchthere is no 'tab' module14:18
jcsacketthatch: i can't find any docs of where Y.Tab is defined--that's based on one blogpost i found about extending tab.14:18
jcsackettwhat should i include?14:18
hatchhmmmmmm14:19
jcsackettcause i can't find anything; it would be nice if TabView had a require, but alas.14:19
hatchok I'm just getting to the tabview source14:20
hatchyou need base-build and tabview14:24
jcsacketthatch: nope, same problem.14:24
hatchhehe _callbackMaybe 'call me maybe' ;)14:25
jcsacketthatch: that wasn't intentional, but once i realized the joke i became fond of the method. :-P14:26
hatchok and does this happen only in the tests?14:26
hatchhaha14:26
gary_posterjujugui call in 214:28
jcsacketthatch: i only get this in test-prod14:29
* benji struggles with the Google Talk plugin again.14:29
* benji gives up and just reboots.14:30
hatchohh - whatabout make clean-all; make prod; ?14:31
gary_posterrick_h_ starting without you14:32
rick_h_gary_poster: k, sec14:32
hatchjcsackett: the reason I'm hoping it happens with make prod is because then you can test to see if Y.Tab and Y.TabView are defined at the top of your closure14:40
jcsacketthatch: i'm not seeing anything. that could be because the tabview's not wired into anything else though.14:45
hatchhmm this sounds very odd14:45
rick_h_hatch: do you have that nodejs bug handy from the npm issues?14:48
rick_h_hatch: nvm, found it14:50
hatchI tweeted it14:58
hatchoh ok14:58
jcsacketthatch: could Y.Tab simply not be exposed in a way that it can be extended?15:01
hatchhttps://github.com/yui/yui3/blob/master/build/tabview/tabview-debug.js15:01
hatchthere is the source15:01
hatchyou'll see that it's exposed on Y.Tab15:01
jcsackettwell, i suppose if that were the case my tests would die in test-debug as well.15:01
hatchok here is what you can do15:01
hatchremove your tabview code from the app, open up the network tab in debug mode and look to see what files are being requested from yahooapis.com15:02
hatchthen add it back in, and compare15:02
hatchour yui dep script doesn't catch all deps I've found15:02
jcsacketthatch: not sure what you mean by "open up the network tab in debug mode"15:02
hatchnetwork tab in chrome = app built with make devel15:03
hatchs/=/015:03
hatchblah15:03
hatchI can't type15:03
hatchs/=/-15:03
hatch:)15:03
hatchbasically you want to see if it's pulling in extra modules from yahooapis.com which it can't do under make prod15:03
jcsackettah, ok.15:03
hatchFYI it pulls in some right now so you will need to compare15:04
jcsackettthat will work even though tabview isn't wired in, so opening the app doesn't create any tabviews?15:04
hatchif it's in the 'use' then it'll pull in the code15:04
hatchI'm also assuming that you have linted this code :)15:09
hatchjuuuuuuust to be sure ;)15:10
jcsacketthatch: yeah.15:10
rick_h_jcsackett: is the latest pushed?15:11
jcsackettrick_h_: yes.15:11
rick_h_I'll pull it down and try it out here localy15:11
rick_h_jcsackett: so all tests pass for me. test-server and test-prod15:15
jcsackett...15:15
jcsackettwell, wtf.15:15
rick_h_http://paste.mitechie.com/show/908/15:16
rick_h_^^ is from test-prod15:16
jcsackettima kill my branch and check it out again.15:16
rick_h_jcsackett: yea, I just grabbed trunk, created a branch, merged yours in, and make test-prod 15:16
hatchlol15:17
hatchman I hate it when that happens15:17
jcsackettthis is maddening.15:20
jcsacketta completely clean checkout of mine fails.15:20
jcsackettevidently only on my machien.15:20
jcsackett*machine15:20
jcsackettwelp, that's it. time to burn my computers and turn to a life of goatherding.15:21
jcsackett:-P15:21
gary_poster2 review requested of https://codereview.appspot.com/762104815:21
gary_postercard is in high-priority maintenance review lane15:22
hatchgary_poster: I'll take one15:23
gary_posterty15:23
hatchwhile I'm doing that - is there a way I can flatten commits with bzr?15:23
MakyoI'll take one.15:23
hatchaka like a rebase with git15:23
gary_posterhatch, rebase was frowned upon within bzr, because commits are hierarchical15:24
gary_posterI think there's a way to do it but I've never done it15:24
hatchahh - I just did a number of small commits and looking at the branch now it's hard to tell what the diff is15:25
hatchno biggy I guess :)15:25
gary_posterhatch, instead you can simply branch trunk again, and then merge in your old branch15:25
hatchoh that will do one commit?15:25
hatchnot merge all of the commits?15:25
gary_posterhatch, that will give you what you want, while maintaining history hierarchically15:25
gary_posterimagine a big commit, which, if you really look at it, can be subdivided into your old smaller commits15:26
jcsackettrick_h_: any notion what might be busted that would let it pass for you not for me? surely YUI require doesn't vary b/c of an lxc...15:26
gary_posterbut the default view will be what you want15:26
hatchahh ok perfect thanks15:26
hatchand a little OT - what15:26
hatch's a spike?15:26
hatchyou mention it in your branch15:26
gary_posterhatch, XP term (as if we do XP): http://www.extremeprogramming.org/rules/spike.html .  Short translation: code that you write to figure something out and prove it works, and then expect to throw away15:27
rick_h_jcsackett: not sure tbh. What's npm --version?15:28
jcsackett1.2.1115:28
hatchgary_poster: ohh ok - I just call those prototypes ;)15:28
jcsackettrick_h_: ^15:29
hatchjcsackett: node version?15:29
rick_h_jcsackett: yea, not sure. I'm .14 but as long as you're not newer you're ok15:29
rick_h_there's a known issue with node 1.0 and the npm with it15:29
gary_posterhatch, +115:29
jcsacketthatch: v0.8.2015:30
hatchhehe15:30
rick_h_jcsackett: but at this point, I cna't say since it doesn't break for me. Only thing I can think is to try a new lxc from scratch and if it works a diff directory v directory15:30
hatchjcsackett: odd - after this review I'll also check it out to see15:30
jcsacketthatch: ok. ping me with results. i'm going to go have some lunch.15:34
gary_posterhatch, you'll be happy to know that I ran my tests on IE 10 as well :-)15:36
gary_poster(and they passed)15:37
hatchhaha awesome15:37
hatchjcsackett: good news - make test-prod fails for your branch here as well15:47
jcsacketthatch: huh. so what's magical about rick_h_'s setup...15:50
hatchhe probably lied and ran make test-debug :P15:50
hatchjcsackett: ok for some reason in your tests Y.Tab() isn't a constructor16:04
hatchneither is TabView for that matter16:07
hatchso you'll need to evaluate why there is no tabview on prod16:09
rick_h_orly? I pasted my test results :P16:11
hatchrick_h_ was that make test-prod?16:12
rick_h_hatch: yea16:12
hatchwell how odd is that16:12
rick_h_.zshhistory http://paste.mitechie.com/show/909/16:12
rick_h_:)16:12
hatchmerge?16:13
rick_h_yea, merged his changes into a local branch16:13
hatchoh - well that's not a clean checkout then is it? ;)16:13
rick_h_oh...well no...but it is test-prod with success16:14
hatchlol16:15
hatchok diff those two branches and we might find the missing link16:15
rick_h_which two? This is jcsackett's branch. 16:15
hatchwhatever your local branch was16:16
rick_h_http://paste.mitechie.com/show/910/ here, that's more complete. It was just trunk16:17
hatchohh ok16:18
hatchI'll try merging into trunk16:18
jcsacketthatch, rick_h_: i did the same steps i see in rick_h_'s paste but no dice.16:20
hatchjcsackett: also no luck here16:21
jcsackettso rick_h_ is magical.16:21
hatchfor whatever reason it doesn't appear that the tabview files are being loaded into the prod rollup16:22
rick_h_lol, YUI auto loads to my commands because I rule16:22
hatchlol16:28
hatchjcsackett: i'd try to manually include the tabview files in the rollup16:30
hatchsee if that solves the issue16:30
hatchsee the merge-files script16:30
jcsacketthatch: ok.16:30
hatchsorry I'm just trying to do this namespace routing stuff at the same time16:31
hatch:)16:31
jcsacketthatch: success!16:35
hatchwerd up!16:36
hatchwhat was it?16:36
jcsackettadding to merge-files16:36
jcsackettmanually pushing 'tabview' into reqs fixed it.16:37
hatchugh - that's the second time that script has failed us this week16:37
jcsackettand as several other modules are in there, i think this is not the first time someone has encountered this.16:37
hatchit's GOTA GO!16:37
hatchjcsackett: how I got to that point was to ack Y.TabView in the rollup16:39
hatchand when it wasn't found that was a big red flag16:39
jcsacketthatch: dig. i'll remember that if i hit this again.16:40
jcsacketthatch, rick_h_: can you fine folks take a look at https://codereview.appspot.com/7663050 when you have a moment and see what else might be wrong with this code? :-P16:40
rick_h_jcsackett: what's wrong now? 16:41
rick_h_jcsackett: or you just mean general review16:41
jcsackettrick_h_: the latter. i was just being self-deprecating.16:42
jcsackettwhich, admittedly, is misleading in this instance.16:42
rick_h_jcsackett: heh, ok will peek in a minute16:42
rick_h_jcsackett: yea, nothing to get down about. I spent half of yesterday debugging stuff just as well16:42
rick_h_poor hatch gets brought into them with no hope :)16:42
jcsackettrick_h_: not down at all. quite pleased in fact to have sorted it. :-)16:42
jcsackettas long as i'm eventually getting stuff done, i'm happy/16:43
rick_h_jcsackett: heh, and I think I see your issue. http://yuilibrary.com/yui/docs/tabview/16:43
rick_h_you used a name already in the YUI namespace16:44
rick_h_nvm, I guess it is 'browser-tabview'16:44
hatchone of these days I'll have to look into that script16:44
hatchto see why it misses things16:44
jcsackettyeah, the file is the same, but the ns is different because our browser prefix.16:44
rick_h_jcsackett: right16:45
hatchreview done16:47
hatchnow if I can get back to MY OWN WORK!!16:47
hatch:P16:47
hatchlol16:47
benji"16 conflicts encountered."  This branch may never end.  I always thought my life's work would be something more substantial than adding a single command to an API.16:47
rogpeppegary_poster: ping16:47
gary_posterhey rogpeppe 16:48
hatchbenji: lol16:48
benji:)16:48
rogpeppegary_poster: so... the most significant allWatcher branch has just landed.16:48
rogpeppegary_poster: and you *might* be able to see something actually working16:48
rogpeppegary_poster: i wondered if you wanted a chat about where we want to go from here16:49
gary_posterrogpeppe, I saw the one earlier today that had the machinery.  now we have the one that actually hooks it up too?16:49
rogpeppegary_poster: yup16:49
gary_posterawesome!16:49
benjiyay!16:49
rogpeppegary_poster: i'll believe it when i see the black triangle :-)16:50
gary_posterrogpeppe, sure, we can chat.  http://tinyurl.com/guichat16:50
rogpeppegary_poster: i'm there...16:51
rick_h_jcsackett: review heading your way. I think there might be some more to clear up though on the way it works16:57
rick_h_honestly, now that I look closely I think a tabview that allows vertical was all we need. 16:57
rick_h_jcsackett: sec, heading home from coffee shop and we can do a hangout in 1016:58
hatchbcsaller: is the best way to get data into topology/service.js to pass the options in via the addModule() call in views/environment.js ?16:59
bcsallerhatch: we typically pass data to the env view and then from that to the topology. All modules will have access to their topology.17:00
=== deryck is now known as deryck[lunch]
hatchgotcha17:03
hatchdamn you dependency injection17:03
hatchglobal variables for everyone!17:03
gary_posterbenji, quick call in guichat?17:19
gary_posterbenji, re https://code.launchpad.net/~gary/juju-gui/megawatcher17:20
gary_posteryou are probably lunching, as I should be17:20
hatchlunch smunch17:20
gary_poster:-)17:20
hatchbcsaller: ok I pushed my changes to use dep injection, now I'm still trying to track down why this test is failing17:21
hatchI REALLY wish mocha would stop squashing console.log17:22
bcsallerhatch: mocha or the console handler in app? on a prod build the console is off by default17:23
bcsallermocha shouldn't touch it17:23
gary_posterhatch, we have a fake console now...I bet we could make the tests turn off the console (i.e., switch to the no-op console) if we are running in mocha17:24
gary_posterthat way we can log whatever we want17:24
hatchbcsaller: well when you run sh test-server.sh debug true no console.logs() are output to the console17:24
hatchgary_poster: ahh17:25
gary_postersounds like you are encountering a different issue than what I thought you were talking about though...maybe related17:25
hatchwhen you run the tests in the browser do you get any logs in the devtools?17:25
gary_posterI think so.  looking (I usually use breakpoints instead)17:26
hatchodd - debugger; also doesn't trigger it to stop17:26
hatchfor me17:26
gary_posterhatch I have lots of "loader: has Skin?" things17:27
gary_posterthat's it17:27
hatchyeah I don't even get those in the tests17:27
hatchwierd!!!17:27
gary_posterhuh, weird17:27
hatchweird even17:27
hatch:P17:27
gary_posterMaybe we turn our fake console on?  Looking...17:28
gary_posterhatch, our console manager is set to noop for our tests somewhere...finding where17:31
=== matsubara is now known as matsubara-lunch
gary_posterhatch, heh17:33
gary_posterI see why17:33
gary_posterwe are running app tests17:33
gary_posterthe app, when instantiated, defaults to turning the console off17:33
gary_posterunless you explicitly tell it to turn on17:34
gary_posterso hatch, the easy small solution is, in your test that you want to see console output in, call consoleManager.native()17:34
gary_poster(consoleManager is stuffed on window)17:35
hatchoh :) awesome thanks17:35
gary_posterto fix this generally...we'd have to do something in app to be more conditional about this somehow17:36
gary_posterwe could set a global flag in the test file, for instance, and have app look for that17:36
gary_posterbut anyway, that will get you going for now17:36
hatchyeah thanks - I just fixed the bug - but that will definitely speed me up :)17:37
gary_postercool17:37
hatchwell I fixed A bug :)17:37
gary_posterhatch if you want to contemplate better ideas, app/view/utils has the consoleManager and app.js uses it (just search for it)17:37
hatchsure I'll take a look at it17:38
hatchoy....102 failures17:39
hatchok apparently a number of tests rely on routing17:42
hatchwho knew!!17:42
benjigary_poster: hey, was lunching; call now?17:51
gary_posterbenji, sure17:53
benjigary_poster: ahhhhh! Hangout problems; one minute17:54
gary_posternp17:54
* benji reboots.17:54
* benji plays IT Crowd to get into the mood for "turning it off and on again"17:55
hatchhaha oh the IT Crowd17:55
hatchboo yeah tests pass18:13
hatchCould anyone familiar with the namespace routing code review https://codereview.appspot.com/7719052 please :) Thanks in advance18:19
hatchI'd also be intersted in a quick QA if possible18:19
MakyoTaking a look.18:19
hatchthanks18:20
hatchrick_h_ this latest branch will allow the url state to be maintained across the charmstore and gui however you'll notice that your views are now pushed offscreen18:22
hatchso that's just a markup/css issue to fix on your end once this lands18:22
hatchjust FYI18:22
rick_h_hatch: ok, thanks for the heads up18:23
gary_posterhatch I gave code review.  About to try it, then will hopefully give a final stamp of approval18:26
hatchthanks - I was using the _ because that's how it was done elsewhere in the application18:27
hatchif it's alright i'd like to land with it then change after - as it'll need to be changed elsewhere in the application18:27
gary_posterhatch I know.  But if we are passing it around everywhere, it definitely is not "protected" any more.  change after: sure.  Next branch though, pls.18:28
hatchyep will do18:28
hatchwhich story should I put that ticket under?18:29
gary_posterhatch, top18:31
gary_posterhatch, qa problem:18:31
gary_posterclick on alerts18:31
gary_posterthen "View All Notifications"18:31
gary_posterTakes you to http://localhost:8888/notifications/:gui:/service/haproxy/18:31
gary_posterwhich does not work18:31
gary_postersorry bad repro instructions18:32
gary_posterbefore all that, click on a unit or service18:32
hatchyep I missed that one, good catch18:33
hatchthanks18:33
=== deryck[lunch] is now known as deryck
gary_posterhatch here's another one,  from unit page (e.g. http://localhost:8888/:gui:/unit/memcached-0/) click on relation link.  url goes to http://localhost:8888/:gui:/unit/memcached-0/mediawiki/relations/ and view shows environment (?!)18:43
gary_posterhatch one more18:43
hatchgary_poster: that's what it did before if I remember correctly18:43
hatchI thought it was intentional18:44
hatchdo we have a relations view? :)18:44
gary_posterfrom service page (e.g. http://localhost:8888/:gui:/service/memcached/relations/) click on relations tab and then click on a link (like to mediawiki)18:44
gary_posterurl changes to http://localhost:8888/service/mediawiki/:gui:/service/memcached/relations/18:44
gary_posterand does not go anywhere at all18:45
gary_posterhatch we do have a relations tab, see above :-)18:45
gary_posterhatch, all of that behavior works properly in trunk/on uistage, so it is specific to your branch18:46
hatchoh I see :)18:46
hatchtoo....many.....links18:47
hatch:)18:47
gary_poster:-)18:47
gary_posterhatch, logout does not work on your branch afaict: takes me to an empty page18:48
gary_postershould take you to login18:48
gary_posterworks in trunk18:48
* hatch wonders if he got anything working properly18:49
hatch;)18:49
gary_posterhatch, that's all I can find.  everything else is AOK18:50
gary_posterlemme know when you have addressed those and I'm happy to re-QA hatch18:50
hatchthere is anything else? lol18:50
gary_poster:-P18:50
=== matsubara-lunch is now known as matsubara
hatchnothing more frustrating than tests that only fail when they are run with the full suite19:20
benjiyep; inter-test state dependencies are a major pain19:44
hatchyeah - the thing is that there shouldn't be any haha19:46
hatchanyone remember who wrote the notifier widget?19:58
hatchI'm trying to figure out why it's calling the notification view when there is no reference anywhere in the test or widget19:58
bacguihelp: dumb question: how do you clone a map in go?  equivalent of python's newdict = dict(olddict)20:01
Makyohatch, bcsaller and frankban, I believe.20:01
bcsallerhatch: my guess is its being subscribed in one of the app tests and then triggered later20:02
hazmatbac, iter old and set into new20:02
bachazmat: oh.  painful.20:03
hazmatits not too bad.. extra 3-4 lines.20:04
hatchbcsaller: it LOOKS like it's being rendered because of some type of event listener?20:04
hatchthe traceback doesn't show much20:04
hatchahah20:04
hatchthat's exactly what's happening - now to find out where it's being instantiated at all20:05
hatchwhich may pose to be a bigger issue as it's probably one of the other tests hah20:05
gary_posterbenji, yay on merge :-)20:25
benji:)20:25
hatchfixed!20:33
hatchFriday card created20:33
hatchlol20:33
hatchgary_poster: fixed code should be up - however I coudln't reproduce your logout issue - if you could try it again and let me know if it's fixed that would be appreciated :)21:13
gary_posterhatch, ok on it21:13
hatchthanks21:15
gary_posterhatch confirmed everything works now except logout.  I'm using make prod: you try that?21:16
gary_posterI will try make devel now...21:16
hatchyeah works on both - dumps me at the login screen21:17
gary_posterhatch, duped on devel but I have more repro instructions: log out from inner page21:17
gary_posterhatch, verified that logout works from inner page on uistage21:18
hatchso an inner page like /:gui:/unit/memcached-0/ ?21:18
gary_posterhatch yes21:19
gary_posterhatch you are not seeing?  If so will kill cache 1 sec21:19
hatch*closes as can't reproduce*21:19
hatch;)21:19
hatchnope I honestly can't21:19
hatchit works everywhere I try it21:19
gary_posterhatch, just duped again after killing cache...21:20
gary_posterhatch screenshare to make sure we are on same page?21:20
gary_posterhatch, guichat21:20
hatchsure21:20
hatchgary_poster: it appears to be a linux issue21:29
hatchI can reproduce it there21:29
hatchwell....linux chrome21:29
hatchok there is some combination of linux chrome and prod which is causing the blank screen (yay at least it can now be reproduced)21:30
hatchon logout on prod it's destroying the application container21:57
hatchso it doesn't have anything to render into21:57
gary_posterglad you could dupe hatch22:42
hatchyep I've tracked it down to a single line22:43
gary_posterthat sounds important for our audience22:43
hatchapp.js ln 703 this.loggingOut is never true22:43
gary_posterhuh22:43
hatchexactly22:43
hatch:)22:43
hatchif you put a debugger; statement on line 699 of app.js you can see that the login screen is actually rendered - then after check_user_credentials is called about 4 times it's gone22:45
hatchso that's how far I've gotten22:45
hatchok it doesn't look like that's the cause22:47
hatchso yeah...22:47
hatchok this.env.getCredentials() is null23:02
gary_posterit should be23:06
hatchfixed23:08
hatchI don't know WHY it broke but I fixed it23:09
gary_posterheh, hatch, you want me to look at it and bless it so you can land this thing and run away?23:10
hatchyup if you don't mind23:10
gary_posteron it23:10
hatchok just lboxing now23:10
gary_posteroh ok lemme know23:10
gary_posterhelping son with homework so in and out23:11
hatchsure no problem23:12
hatchannnnnd it's up23:14
gary_posterok trying23:15
* hatch crosses fingers23:17
gary_posterhatch worked for me!  crazy that this new else block is necessary in this one case.  I will suggest that you comment it in the review, but otherwise LGTM.  Thank you!23:18
hatchw0000000t!!23:18
hatchthat one took forever to track down23:19
hatchglad that's done23:19
hatchwell in reality it was only 30 minutes - why did it feel longer than that23:20
hatchlol23:20
hatchin this debugging however I found a number of performance improvements we can do in the future23:21
gary_posterhatch, cool, write em down in a card pls :-) .  Meanwhile LGTM.  Gave some trivial comments because wasn't quite sure why you opted for ../../ but probably good.  it certainly works, so I suggest you just leave it23:29
hatchthank yas - well the place where those are located nested two deep from the parent context - I don't like it either but unless you know of a way to get the parent context I don't think we have any other option23:32
hatchfor the record, I didn't like doing that either :)23:32
hatchI noticed you said / does that mean 'top context' ?23:33
hatchblarg - ok, that 'fix' that I did breaks other things in the app23:35
hatchwait no it didn't23:36
hatchO K it's time to call it a day haha23:37

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