/srv/irclogs.ubuntu.com/2014/06/05/#juju-gui.txt

=== _mup__ is now known as _mup_
frankbanmorning rogpeppe: how are you doing?08:19
rogpeppefrankban: hiya08:19
rogpeppefrankban: not too bad08:19
rogpeppefrankban: just reading the leader election thread08:19
frankbanrogpeppe: are you migrating filetesting?08:20
rogpeppefrankban: yes, i have a LGTM and can merge it08:20
rogpeppefrankban: i'll do that now08:20
frankbanrogpeppe: ok I moved the card in coding and assigned to you, please put it in daily accomp. when done.08:21
frankbanrogpeppe: do you have notes on the migration steps?08:22
rogpeppefrankban: hmm, i thought i had a card08:22
rogpeppefrankban: i haven't made the notes yet, but i've got all the shell history :-)08:22
frankbanrogpeppe: cool, could you please share it? you have a card for utils, I believe you switched to filetesting because some packages in utils depend on it, correct?08:23
rogpeppefrankban: yup08:23
rogpeppefrankban: zip/zip_test.go08:24
rogpeppefrankban: that seems to be the only one08:24
frankbanrogpeppe: cool, I guess I am going to migrate schema08:26
rogpeppefrankban: that should probably go inside utils, i think08:27
rogpeppefrankban: i don't really think it justifies its own repo08:27
rogpeppefrankban: then again, i don't mind much08:28
rogpeppefrankban: if you think otherwise08:28
frankbanrogpeppe: I proposed the same last week and David said: "Yes to migrating it, no to renaming it. Schema is useful as a top08:29
frankbanlevel project, rather than buried in an amorphous utils repo."08:29
rogpeppefrankban: ok, fair enough08:30
frankbanrogpeppe: ugm. it seems I don't have permission to create a repo in juju :-/08:34
frankbanrogpeppe: when you can, could you please 1) create a juju/schema repo (I don't have permission) and 2) send me the commands you used to split filetesting?08:42
rogpeppefrankban: 1) is now done08:45
rogpeppefrankban: for 2) you won't need the more complex commands that i used08:45
rogpeppefrankban: because you're not merging into an existing repo08:46
rogpeppefrankban: and you don't need to rewrite pathjs08:46
frankbanrogpeppe: 1) thanks09:01
frankbanrogpeppe: github says https://github.com/juju/schema is empty and I cannot fork it09:01
rogpeppefrankban: utils is now factored out; here's a trivial PR that adds README.md and LICENSE: https://github.com/juju/utils/pull/109:02
rogpeppefrankban: you'll need to push directly to it initially09:02
frankbanrogpeppe: ah, so initial push with an empty repo or with the actual repo generated by "git filter-branch"?09:05
frankbanrogpeppe: LGTM09:05
rogpeppefrankban: the latter09:06
frankbanrogpeppe: ERROR: Permission to juju/schema.git denied to frankban.09:18
frankbanrogpeppe: any idea?09:40
rogpeppefrankban: sorry, missed your earlier comment09:41
rogpeppefrankban: looking09:41
frankbanthanks09:41
rogpeppefrankban: what command did you use?09:42
frankbangit remote add upstream git@github.com:juju/schema.git09:42
frankbangit push upstream master09:43
frankbanrogpeppe: ^^09:43
frankbanrogpeppe: in https://github.com/juju/schema I only see:09:44
frankbanThis repository is empty.09:44
frankbanCare to check out the GitHub Channel on YouTube while you wait?09:44
rogpeppefrankban: does it behave differently if you do: git remote remove upstream; git remote add upstream https://github.com/juju/schema.git ?09:44
frankbanrogpeppe: it asks for user and password and then exits with: fatal: unable to access 'https://github.com/juju/schema.git/': The requested URL returned error: 40309:45
rogpeppefrankban: hmm, weird09:46
rogpeppefrankban: i'll try pushing a branch to it09:46
frankbanrogpeppe: https://github.com/juju/schema/settings/collaboration ?09:48
frankbanrogpeppe: now I see your branch but I cannot fork09:49
rogpeppefrankban: ah, i hadn't seen the collaboration settings09:49
rogpeppefrankban: you should be able to push now09:49
frankbanrogpeppe: done, could you please remove the testing branch?09:50
rogpeppefrankban: yeah, just trying to work out how to do that09:50
rogpeppefrankban: hmm, it's not obvious...09:52
frankbanrogpeppe: I did it09:53
frankbanrogpeppe: git push upstream :testing09:53
rogpeppefrankban: ah yes, i'd forgotten that idiom09:53
frankbanrogpeppe: https://github.com/juju/schema/pull/109:57
rogpeppefrankban: LGTM09:58
frankbanthanks09:59
frankbanrogpeppe: could you please create a juju/names repo and give me write permission?10:28
rogpeppefrankban: yup10:28
frankbanthanks10:31
rogpeppefrankban: done10:34
frankbanrogpeppe: thanks10:37
frankbanrogpeppe: could you please review https://github.com/juju/juju/pull/25 ?10:37
rogpeppefrankban: LGTM10:38
frankbanrogpeppe: do you know if in the new git world dependencies.tsv changes are handled by the bot?10:38
rogpeppefrankban: i don't - best ask on #juju-dev10:39
frankbanrogpeppe: yeah, already done10:39
frankbanrogpeppe: thanks for the review, I guess I'll try to $$merge$$ it10:39
rogpeppefrankban: good plan10:41
frankbanrogpeppe: and now names10:42
frankbanrogpeppe: FWIW, these are the notes I've taken while migrating schema: http://pastebin.ubuntu.com/7593938/10:42
rogpeppefrankban: BTW your "fix import paths" step can be done automatically by running "govers -m github.com/juju/juju/schema github.com/juju/schema" in the schema directory10:45
rogpeppefrankban: what's the difference between an https remote and a git@github remote?10:46
frankbanrogpeppe: https vs ssh10:46
rogpeppefrankban: is one preferred over the other?10:47
frankbanrogpeppe: not sure, I prefer ssh because https asks me credentials10:47
frankbanrogpeppe: ssh uses the ssh key10:48
rogpeppefrankban: hmm, i guess i can tell github about my ssh key10:49
frankbanrogpeppe: https://help.github.com/articles/generating-ssh-keys10:50
rogpeppejeeze my network is stupidly slow today11:27
rick_h_ssh is faster and uses the key vs password. 11:47
frankbanrogpeppe: trivial https://github.com/juju/names/pull/112:08
rogpeppefrankban: LGTM12:09
frankbanrogpeppe: thanks12:10
frankbanrogpeppe: could you please take a look at https://github.com/juju/juju/pull/27 ? (mechanical)12:50
rogpeppefrankban: did that previous branch merge ok?12:52
frankbanrogpeppe: yes12:52
rogpeppefrankban: or did you have to do something manually to update the deps?12:52
frankbanrogpeppe: no it seems they are handled automatically now12:53
rogpeppefrankban: great!12:53
frankbanyeah12:53
rogpeppefrankban: LGTM12:53
frankbanrogpeppe: great thanks12:54
bachi rick_h_ -- i got an email from the LocalCharmGuy asking how to ingest local bundles.  afaik we've not tried that before but it should be similar.  shall i finish my current task and then help him?13:03
kadams54morning all13:06
jcsackettmorning kadams54.13:09
kadams54rick_h_: you around?13:10
redirmorining13:12
redirI have to go get a blood test.13:12
redirbbiab13:12
rick_h_kadams54: kinda what's up?13:21
kadams54rick_h_: Just wondering what needs working on next. I could start tackling all the feedback from design or I could move into the cards for MV. Very hesitant to start in on an IL card until hatch is in, to make sure we aren't setting up painful merge conflicts.13:23
rick_h_kadams54: yea, any MV card, especially that was part of our planning poker for this sprint is good13:27
rick_h_kadams54: there's some wire cards that might work out13:27
rick_h_kadams54: did you move all the cards you had created in there? 13:28
kadams54Yeah, going to start in on the one for choosing constraints13:28
rick_h_ah cool, thanks for moving those to the pool. I think on deck would be good as well13:28
kadams54rick_h_: I moved them into the Pool for Project 1, per hatch's suggestion yesterday.13:28
rick_h_but nice to split out back down to our planned work for the sprint13:28
rick_h_+113:28
kadams54Also setup a metatask card for the design feedback13:28
rick_h_I'll be doing card gardening today/tomorrow13:28
kadams54I did real gardening yesterday.13:28
kadams54I suspect you'll end up with fewer mosquito bites.13:29
rick_h_awesome, had enough of those to last me a while this week :)13:29
kadams54Though I suppose that depends on where you're camping :-)13:29
kadams54I have NEVER seen mosquitos this bad13:29
rick_h_did you see my pics?13:30
kadams54No, where at?13:30
bachey frankban, we've also got to do a quickstart release to get the OS X support...my brew recipe works but it installs 1.3.2 and then promptly fails b/c it doesn't have the new work.  i'll be glad to start on the QA, do the release, whatever.13:30
bacrick_h_: your pics were good.  liking the new camera?13:30
rick_h_bac: <3 I upgraded from the kit lense yesterday and got a tripod so looking forward to playing with it some more13:31
rick_h_kadams54: https://www.flickr.com/photos/7508761@N03/14300218662/ and https://www.flickr.com/photos/7508761@N03/14115492088/13:31
kadams54moving up from a kit lens is such a *huge* improvement13:31
bacrick_h_: which tripod? there some cool, lightweight travel ones out now13:31
frankbanbac: ok, I'll make the deb packages in quickstart beta, then I'd appreciate your help for QA13:32
rick_h_bac: mefoto one, the middle one13:32
rick_h_bac: it'll do a monopod as well which I liked for travel13:32
bacrick_h_: yeah that's one of the ones i was thinking of13:32
kadams54rick_h_: Yeah, that's about right. The only thing I've ever seen that's even close is the swarm of mosquitoes above the latrine at Minnesota camp sites in the Boundary Waters.13:33
bacfrankban: great!13:33
rick_h_ok, car is ready...out for a bit13:33
kadams54Have fun!13:34
bacrick_h_: i hope you got the purple13:34
frankbanrogpeppe: is juju/utils usable?13:38
rogpeppefrankban: it should be13:39
frankbanrogpeppe: ok thanks13:39
frankbanrogpeppe: I'll tackle the FakeHomeSuite next13:39
rogpeppefrankban: i'll change charm so that it doesn't use environs/config13:40
frankbanrogpeppe: sounds good13:40
frankbanrogpeppe: don't we need to remove some packages from utils in core?13:41
rogpeppefrankban: ah yes, and most of utils itself13:41
rogpeppefrankban: i'll do that too13:42
rogpeppefrankban: along with making juju use utils13:42
frankbanrogpeppe: yeah thanks, so that you can move your current card to done13:42
frankbanrogpeppe: names removal landed in core13:43
frankbanbac: quickstart packages pending13:53
frankbanbac: https://code.launchpad.net/~juju-gui-charmers/+recipe/juju-quickstart-daily13:53
bacfrankban: so we will qualify the .deb, then release to pypi, and then i can qualify on os x, and try to get the brew formula accepted.  sound about right?14:06
frankbanbac: sounds good14:06
frankbanbac: do you have a saucy vm?14:09
* bac looks14:09
bacfrankban: i do.  i collect them like baseball cards14:10
frankbanbac: heh14:10
baclucid, quantal, raring, saucy, trusty ... and some from lesser OSes14:10
frankbanbac: so QA can be something like: verify lxc envs work, verify ec2, verify idempotence, check bundle deployments work.14:12
frankbanbac: the above on trusty and saucy, and that should be enough14:12
bacfrankban: how is the idempotence step done?  you mean uses existing bootstrapped env?14:13
frankbanbac: quickstart must be installed from the PPA, and the machine should not have juju-core installed (so that we can also verify juju installation)14:13
frankbanbac: yeah, running on an existing environment, perhaps also running on an existing environment without the GUI deployed14:14
rick_h_bac: red :P14:15
rick_h_bac: frankban a doc of qa for a release like that would be useful as things get more complex. I'm not sure how to look into automating test/qa across OS and systems like that now. 14:19
bacrick_h_: i'm starting a QA doc.14:19
rick_h_bac: rock on! 14:20
bacwill do google doc for now and we can move it to the tree if we want14:20
rick_h_yea, in tree ftw so it's easy to update it as required as the code changes14:20
rick_h_and easier to hand off next ccyle14:20
rick_h_cycle14:20
bacrick_h_: even though you are not here, did you see my question regarding local bundle ingestion?14:21
frankbanrick_h_, bac: +1 on a doc that will be merged into HACKING, but I'd really love if quickstart had functional tests which can be run by the juju CI against current and devel juju releases14:21
rick_h_bac: no, I didn't see it sorry14:21
rick_h_frankban: yea, definitely +1 on working with QA on that. Not sure how much OSX QA they can setup but maybe there's others around we can ask about these sorts of issues. 14:22
bacour friend has local charm ingestion working.  he'd now like to do local bundles.  i've never tried it so i'd have to get it to work then document.14:22
rick_h_what is a 'local bundle'?14:22
rick_h_ah, a bundle with local charms...not going to happen right now. 14:22
bache wants his bundles to show up in the sidebar of juju gui14:23
rick_h_yea, that's not currently supported. 14:23
bacwell...if he's running his own charmworld (he is) and has ingested local charms as he has, then ingesting bundles should just work, for some amount of config/poking.14:24
bacunless i'm missing a failure point regarding the charm store or something14:24
rick_h_well we'll have to walk him through getting those bundles ingested as he doesn't want to submit them to lp charms/bundles14:25
rick_h_and honestly we've got a really nice chunk of time sunk into this 14:25
hatchnow that core has switched to GH and is getting an email per comment......holy smokes lots of emails hah!14:28
redirrogpeppe: frankban am I missing something here? http://juju-ci.vapour.ws:8080/job/github-merge-juju/23/console14:40
redirhow can there be panics and FAILs and pass?14:40
frankbanredir: uhm, it seems tests run a first time and failed, and then a second time successfully14:42
redirmmm yes I missed the + go test -p 2 ./...14:43
frankbanredir: so the first time they failed using all the cpu cores. subsequently the lander switches to using 2 cores14:44
redir-p is cores? and not -cpu?14:46
redirjujugui standup in 1014:50
frankbanredir: the number of builds that can be run in parallel14:52
frankbanredir: from "go help build"14:53
Makyohatch, ping14:53
hatchyesm14:54
MakyoJust curious if our branches are going to collide.  Is the solution you're working towards the fact that there are two div.left-breakout elements and the fillSlot code is not grabbing the right one?14:55
hatchMakyo yes ish - I'm still trying to determine the right approach14:56
hatchthere are left-breakouts which aren't used14:57
hatchthen there is the bws-data elements which are14:57
hatchbut they are using the wrong ones14:57
hatchthis stuff is really borked14:57
hatchchat after the standup?14:57
Makyohatch, yep, that sums it up nicely.  We'll talk then.14:57
Makyojujugui call in 214:58
bacjcsackett: i'll be glad to look at your charmworldlib MP15:09
jcsackettbac: oh, it's coming. but it'll have to be slack.15:10
bacjcsackett: ok.15:12
* rogpeppe wishes that you could see the comment that was being replied to in git code review comments.15:16
hatchrogpeppe you can15:23
rogpeppehatch: ... by going to the web page, right?15:23
hatchyeah - unless they rebased it away15:23
hatchthen it only has the few lines surrounding it15:23
hatchrogpeppe it could be worse, it could be LP which doesn't even give you a link to the repo in it's emails lol15:24
redirchange is hard15:29
kadams54hatch: you available to chat?15:43
hatchjust feeding the dogs, 2 mins15:43
kadams54redir: Yeah, that's why I decided to be a programmer. A nice, comfy career secluded from change. ;-)15:44
redir:)15:44
redirkadams54: at least for several minutes at a time15:44
hatchkadams54 ok - standup room should be empty15:46
hatchblah it dropped15:48
hatchone sec kadams54 15:48
kadams54maybe I'm not the one with bandwidth/lag issues ;-)15:49
frankbanbac: quickstart packages are ready16:18
redirrogpeppe: is there a command to create the juju lxc container templates ?16:23
rogpepperedir: no AFAIK. i think they should be created automatically by juju.16:23
redirrogpeppe: I mean without deploying something16:24
rogpepperedir: what are you trying to do?16:25
redirI am trying to get consistent test  passage16:25
redirI have 2 machines with lxc containers that have nothing but juju core on them 16:26
redirone passes all tests with -p 2 flag and the other fails lxc-test 16:26
rediroh well. 16:28
redirit works on one, I'll work on that machine:)16:28
hatchkadams54 ok review done - feel free to take a look and lemme know where you want to go from here16:28
kadams54ok16:28
frankbanbac: resulting package is broken, missing "python-websocket-client". I'll try to fix that.16:29
frankbanbac: re-building...16:36
frankbanbac: packages should be ready in ~30mins. I am not sure about "websocket-client" in saucy and precise (maybe we will need to create backports) BTW if they install correctly feel free to proceed with QAing and release. Releasing involves steps in http://bazaar.launchpad.net/~juju-gui/juju-quickstart/trunk/view/head:/HACKING.rst#L10117:01
hatchkadams54 so thoughts on my comments?17:22
kadams54hatch: oh yeah, sorry, they look good, working on implementing right now17:22
hatchok great - you'll need to close Huw's and re-PR unfortunately17:23
hatchI wish people could do coop PR's17:23
rogpeppei'm done for the day17:52
rogpeppeg'night all17:52
* bac misses having LP super powers to bump up build farm priority...18:04
hatchbac haha, I thought you had those up until recently18:33
hatchwhen did they get taken away?18:33
MakyoYES19:27
MakyoGot it.19:27
MakyoFinally.19:27
MakyoThere are so many tiny little parts to the viewlets system.19:28
MakyoIt's pretty cool when it works right, though!19:30
hatchMakyo YAY! 19:39
hatchMakyo I would be interested in hearing ways to make it easier to follow 19:39
MakyoProbably could've used some RTFM on my part :)19:39
hatchlol19:39
hatchI'm also pretty pumped about this cache system19:40
hatchlittle concerned noone else will be though haha19:40
MakyoI promise I will be sufficiently pumped.19:43
rick_h_:) why would no one else be pumped hatch?19:44
hatchrick_h_ because it's magical!19:44
* rick_h_ raises eyebrows at the word 'magic' in the area of coding19:44
rick_h_as long as it's not so magical that only a wizard can figure it out later after years of additional study :P19:45
hatchhaha19:47
hatchhttps://github.com/hatched/juju-gui/blob/caching-charmbrowser/app/utils/cache.js19:49
hatch^ rick_h_  Makyo 19:49
MakyoTWO underscores! That really is magic.19:50
kadams54That's python-agical.19:50
kadams54Dunder here we come!19:50
hatchlol - the more underscores is the importance of the dev not using it directly19:52
hatchat two you BETTER know what you're doing :P19:52
hatchthree...well three....wow19:52
hatchjust no19:52
hatchjust FYI that code doesn't run, I had a bug in there :)19:55
rick_h_huh? one public method, no tests to follow expected working/use :P19:56
hatchI'm writing the rest of the tests now19:57
MakyoJDD - Jeff Driven Development.20:03
hatchlol20:07
hatchWWJD20:07
hatchWhat Would Jeff Do20:07
hatch<sub>Is probably not what you want to do</sub>20:07
hatchlol20:07
hatchso our linter gets confused by functions in comment blocks20:17
hatchyay....20:17
hatchlol20:17
hatchjujugui looking for a review of the new cache object https://github.com/juju/juju-gui/pull/36820:20
redirIf I knew JS I would look at it and say __LGTM__, alas the joke falls flat20:21
bachatch: i'm not sure when my wonder-powers were removed.  probably when they noticed all of my PPAs hogging the build farm. :)20:22
hatchredir lol20:22
hatchbac haha20:23
hatchso.......anyone able to do that review? jujugui.......beuler? 20:47
jcsacketthatch: sure.20:53
redirhatch: __UNQUALIFIED__ :)20:53
hatchjcsackett sweet thx20:54
jcsacketthatch: no tests?20:54
hatchumm20:54
hatchcrap20:55
hatchone sec20:55
jcsackettk.20:55
hatchok tests :)20:55
hatchman I'm fast at writing tests eh? :P20:55
jcsackettsuperfast. :p21:00
jcsacketthatch: this is really hard to review absent its use; two things stand out to me: why are we bothering with supplying special setters/getters? is there a use case already?21:15
hatchjcsackett interesting and search21:15
hatchwell search*n for each search query21:15
hatchit's a highly generic cache layer which allows you to do with it what you want21:15
jcsacketthatch: yeah, i'm just saying it seems overly generic. but that's not a big deal.21:16
hatchcorrect it is21:16
jcsackettmy bigger question is also a comment in the PR. that whole autogenerating setters/getters thing.21:16
jcsacketti don't see how that's desireable--i would much rather cache.set(key, data) than cache['get'+key](data) if i'm doing caching of arbitrary objects, which seems likely.21:17
hatchsure, replying21:18
jcsacketthatch: ok. wasn't sure if you preferred here or in github, given the long convo in the other channel we had earlier. :)21:18
jcsackettbut i guess that was more python questions than code review.21:18
hatchoh haha yeah that was mostly pythony related21:19
hatchok replied21:19
rick_h_replied :)21:20
jcsacketthe emerges, from the deeps.21:20
rick_h_builder just got through telling me my $30k screened porch should be a $90k+ addition :/21:21
rick_h_so disclaimers and all that 21:21
* jcsackett laughs21:21
hatchrick_h_ did you tell them that they can do whatever they want as long as it's $30k? lol21:21
rick_h_heh21:21
jcsacketthatch: assuming i'm swayed on the custom getter/setter thing, i think i can be convinced this is all lovely if you make the "getnameofthing" functions "_getnameofthing" and give me a get(key, data) function that grabs the goofy name and calls that.21:22
jcsackettbut that's a workaround if i'm swayed on the custom bit.21:22
hatchjcsackett if we want it to be super basic we can just use a global object and call it a day21:23
hatchthen if you want a custom getter/setter hang it off the object21:23
hatchthis was an attempt to formalize access of the cache21:24
jcsacketti mean, i'm pro a uniform cache for everything; and i like a wrapper protecting access to an internal __storage object that deep copies.21:25
rick_h_hatch: so the requirements are a shared object with a single modellist for all cached charm models + a flexible list of defined/named modellists (interesting, search_term1_term2) or the like?21:26
jcsacketthatch: i'll be back to continue looking at this soon--have to make an emergency run to the store.21:26
hatchrick_h_ replied to your request for the use case21:27
rick_h_hatch: ty21:27
rick_h_reviewing more thoroughly now21:27
hatchjcsackett I think I might agree with your get('nameofthing') to _getnameofthing() conversion21:30
hatchthinking through it 21:30
rick_h_hatch: replied and reviewed21:31
jcsacketthatch: cool. 21:31
hatchit makes it cleaner to interact with, I see no down side to it21:31
hatchback from the store already?21:32
hatchwow21:32
jcsackettOn my phone. It beeped as I was getting in my car. 21:32
hatchoh :)21:33
jcsackettCall my name and I shall appear. Assuming my IRC notifications aren't all hacked up. :p21:34
rick_h_beatlejuice beatlejuice jcsackett 21:35
* rick_h_ checks if it worked 21:35
jcsackettOh, to do that it has to be in a mirror in the dark. 21:36
jcsackettHatch: with the change to the customs being _ and a get/set db that looks up the customs, my chief complaint is addressed. 21:36
jcsackettrick_h_ clearly has several that I think are valid. 21:37
hatchrick_h_ lol!!21:37
hatchrick_h_ replied to the long thread again :)21:37
hatchreplying to the rest now21:38
rick_h_hatch: ok, replied back one more time. I've got to run at the moment sorry. 21:43
Makyojujugui https://github.com/juju/juju-gui/pull/369 databinding for unit details + viewing charm details PR for review and QA21:47
hatchMakyo sure I'll hop on that22:01
hatchMakyo heh it's such a good idea that we didn't work on this at the same time - there was so many conflicts haha22:02
MakyoRight? :P22:06
hatchMakyo your branch also fixes the charm details panel fyi22:10
Makyohatch, yep, that was the goal.22:11
MakyoJust poorly named.22:11
hatchdun and dun22:12
MakyoCool, replied and prepping for another push.22:13
MakyoShould be landable, though22:13
hatchrick_h_ jcsackett  ok I'm not entirely sure where to take the caching branch - do I remove the functionality and just go for a 'dumb' key/value object store or add the generic get('key') like methods and leave the advanced functionality?22:15
rick_h_hatch: I think it's worth this discussion. I see your idea about the database, but I feel like that's the wrong place (thus the cache) since the db can be modified by env and such22:15
rick_h_hatch: the results form charmworld are static, unchanging, pure cache22:15
hatchright - but I am trying to figure out where removing the functionality makes it a better tool22:16
rick_h_not live models for modifying/etc. They get copied on deploy, and I agree we should not re-request them, but we should be copying them from the cache into the db via that code I think22:16
rick_h_I'm for a lighter cache to get started and adding complexity as required by use cases. I think that helps keeps this from being that big chunk of work as well for now. 22:17
rick_h_but that's how my head works, interative development22:17
hatchI'm not sure I agree with you on that cache to db stuff :) 22:17
hatchright, but it's already written22:17
rick_h_and I'm just not sold on the bigger picture cases so far.22:17
hatchso removing the functionality is actually more work :)22:17
rick_h_hatch: yea, but it's overhead. long term maint. overhead22:17
rick_h_every time someone tries to figure out 'how does this work' overhead22:17
rick_h_it's 10x the 'let's clear it up now' work levels22:18
hatchok then all of this is simply WAY to good, might as well just create an instance of Y.Attribute and call it a day22:18
rick_h_lol22:18
rick_h_well I think we can chat on the db point, that seems to be the heart of this. You've got a use case I'm not following yet22:18
hatchbut really, then it has getters and setters, and it's an object store22:19
hatchthe app.js can just go this.cache = new Y.Attribute() and it's done22:19
hatchlol22:19
rick_h_well I don't even know getter/setters are required. What do they get us? We're not waching/eventing on this22:19
rick_h_hatch: heh, except we want to pass the object instance around down to views/etc. and I think it might belond on state tbh22:20
hatchso then we don't need a new class at all22:20
rick_h_kind of like that one bit of state that's out of band already, /me tries to recall it22:20
hatchjust create an object22:20
rick_h_hatch: maybe not, the main goal was to get it out of browser.js22:20
rick_h_so that it's not so smart and center of the world with stuff so it can be shared better22:20
rick_h_what use case does an object on state fall apart at?22:21
* rick_h_ is trying to think this through 22:21
hatchI wouldn't put it in state because I think it's bringing stuff along with it that is unnecessary, I'd definitely keep it separate22:21
rick_h_ok 22:21
hatchso now the question is....why won't a dumb object work22:22
hatchit's not a very 'clean' approach 22:22
rick_h_so for the use case of charm/bundle models it seems sensible. a dumb object of model lists22:22
hatchimpossible to test22:23
hatchthere isn't anything 'to' test22:23
rick_h_ok, so a simple get/set api on top of a dumb object makes it a cleaner api?22:23
hatchit does, because then you can see 'ok here we have a cache' 22:23
rick_h_hatch: well, that's kind of the nice thing. You test things that are cache-enabled. And make sure they read from the cache data without making a new request, or that they update the cache data 22:24
hatchright but there is no 'cache' it's just an object22:24
rick_h_ok, so I can +1 a get/set but without the magic method per cache key22:24
hatchthere is no implicit.... I am a cache, hear me roar22:24
rick_h_hatch: right, but that's what makes it easy to test :) 22:24
hatch(i'm just talking it out btw)22:24
hatchget and set without any bonus kind of feels like a waste 22:25
rick_h_so maybe calling it a cache is a bad word? Is there a better way of calling it "hey view, here's some existing useful data to help speed things up for you"22:25
hatch(which is a cache) :P22:25
rick_h_well you're saying an object is no cache, that it's ugly without an api, so I'm trying to figure out how to do it in a light weight way that provides and api and 'feels' cachy (aside from the name of the argument being cache or modelCache)22:26
hatchan object will work just fine as long as nobody touches it22:26
jcsacketti mean, caches frequently are dumb, so a protected storage thingy with get and set and ensurance that we're deep copying doesn't sound like a waste to me.22:26
hatchwhen you wrap it inside an instance it's much harder to touch22:26
hatchyou have to be explicit about accessing it22:27
rick_h_hatch: ok, so then the thing to figure out is how to update teh cache22:27
rick_h_in the old system the Views fired a cacheUpdate event with the new data to cache22:27
hatchI think the cache should be passed in22:27
hatchbut then everyone can access the object22:27
hatchwithout going through a setter/getter22:27
hatchthey could accidentally empty it too22:28
hatchso that's the issue with a basic object22:28
hatchno protection at all22:28
rick_h_well, I think we can unblock ourselves with a simple object for now and move forward towards release. And keep in mind the tools available if a more complex use case presents itself. However, we don't currently have those to drive the decisions on what to implemnt22:28
rick_h_and if it's simpler now, it's less to update/replace down the road when a real use case does jump out and hit us22:28
hatchok I'll scrap this branch22:29
hatchthe cache will live in the browser though22:29
hatchI don't think this cache needs to be passed from the app22:29
hatchat least for now22:30
rick_h_why in the browser? How does that work with the inspector and other use cases? 22:30
hatchlike browser.js 22:30
rick_h_that's been a limitation of the last work. If the inspector loads up a charm details it can add it to the cache22:30
hatchit should be adding that to the db22:30
hatchnot to the cache22:30
hatchit's a fully populated model then22:31
huwshimiMorning22:31
hatchthat's where grabbing keys for the search/interesting makes more sense22:31
rick_h_ok, but before it's added to the db is can get an initial default values/etc from the cache22:31
hatchmorning huwshimi 22:31
huwshimihatch: Hey22:31
hatchlol I really don't agree22:32
rick_h_but it needs access to that, I guess the inspector is in the browser at this point but it feels like it's not the right place to keep it out22:32
hatchok I think I got something22:32
hatchput the cache in the db22:32
rick_h_hatch: call?22:32
hatcheverything has access to the db already22:32
hatchsure22:32
hatchI think it's aus call time too22:32
rick_h_but the browser never ever touches the db, now all that code needs a db instance passed down which allows it to touch a bunch of stuff it never should need to22:32
hatchim in the aus room22:33
rick_h_huh? the charmresults has db access currently?22:33
hatchno browser.js does22:33
hatchkadams54 did you end up re-proposing huwshimi  branch?23:03
hatchhuwshimi so kadams54 took over your branch (the one he closed) to apply the changes from my comments. I don't see anything in his fork about that so maybe you want to take those comments and run with them today?23:06
hatchhuwshimi this is the PR in question https://github.com/juju/juju-gui/pull/36623:06
huwshimihatch: OK, was there a reason he needed to pick it up (was it blocking something)?23:06
hatchhuwshimi he was going to take it, fix the comments, then add the functionality to the container as well23:07
huwshimiAh I see23:07
hatchso yeah...if you're blocked on that not landing then maybe you can continue on your own branch23:07
hatchsucks to be duplicating work but I'm not sure where it's at23:07
huwshimihatch: Do you know if he started working on the container constraints?23:12
hatchhuwshimi no idea, sorry23:12
hatchhuwshimi maybe you can ping kadams54  periodically over the next few hours :P23:30
huwshimi:)23:30
kadams54actually i'm here now23:30
hatchit worked!23:31
kadams54for about 5 seconds :-)23:31
hatch:P23:31
kadams54location change23:31
hatchkadams54 where are you with huwshimi's branch?23:31
kadams54and then we can talk more23:31
hatchoh ok23:31
kadams54hatch, huwshimi: back. Here's the update: I'm fixing tests that broke in refactoring. My plan was to push once those tests were fixed.23:47
kadams54Unfortunately I won't be able to resume work on them for another 45 minutes. So hopefully it's not blocking?23:48
huwshimikadams54: That's fine, not blocking me!23:48
kadams54huwshimi: great.23:49
kadams54huwshimi: your branch implemented about half of the card I picked up, which is how I ended up on it in the first place :-)23:49
huwshimikadams54: Ah yeah, are planning on re-using that view and using it in the containers column?23:50
kadams54Yes23:50
huwshimikadams54: Great, I assume you'll do the container type card at the same time?23:51
kadams54huwshimi: "wire deployed unit token UI for choosing container type" - that card?23:52
kadams54I was planning on tackling that next :-)23:52
huwshimikadams54: Yeah23:52
huwshimikadams54: Well, it's the step before the constraints are show...23:53
huwshimi*shown23:53
huwshimikadams54: Might make sense to do them at the same time, or do the container type card first (if it can be broken out)23:53
kadams54I was going to do it after the constraints work because that was already in progress on your branch.23:55
kadams54So the plan was to wrap up your branch, get it landed, and then start on container types.23:55
kadams54That said, we'll see how things go once I get the kids settled in bed ;-)23:55
huwshimikadams54: OK, well, whichever way make sense, I guess either way you need to do a bit of refactoring.23:57

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