fluid-tech IRC Logs-2012-03-20

fluid-tech IRC Logs-2012-03-20

[10:20:55 CDT(-0500)] <yura1> colinclark, colinclark_: i m looking at integration of gpii components into the flow manager and was chatting to Kasper about the placement of launch handler functions

[10:21:21 CDT(-0500)] <yura1> for example , we have a sample payload that has a handler like with "type": "gpii.launch.gsettings",

[10:22:13 CDT(-0500)] <yura1> it probably would belong somewhere in the linux repo, however i m trying to figure out how it would then integrate with universal

[10:22:22 CDT(-0500)] <yura1> any thoughts, colinclark, colinclark_

[10:23:20 CDT(-0500)] <colinclark> okay, now i'm myself again

[10:23:25 CDT(-0500)] <yura1>

[10:23:43 CDT(-0500)] <colinclark> Can you elaborate on "integrate with universal?"

[10:23:54 CDT(-0500)] <yura1> sure

[10:24:02 CDT(-0500)] <yura1> so we have a configuration manager

[10:24:05 CDT(-0500)] <yura1> that is in universal

[10:24:07 CDT(-0500)] <colinclark> yup

[10:24:15 CDT(-0500)] <yura1> that will be calling launch handlers

[10:24:20 CDT(-0500)] <colinclark> yup

[10:24:29 CDT(-0500)] <yura1> which are platform dependant

[10:24:33 CDT(-0500)] <colinclark> hey, there's kasper

[10:24:35 CDT(-0500)] <colinclark> yes

[10:25:01 CDT(-0500)] <kasper> hey colin and yura… On a call with Gregg, so will just listen in on IRC

[10:25:05 CDT(-0500)] <colinclark> yup

[10:25:09 CDT(-0500)] <yura1> so in order to call such handler it should be in the same environment/namespace

[10:25:35 CDT(-0500)] <colinclark> I guess the binding between the configuration manager and all its launch handlers is via EL paths

[10:25:45 CDT(-0500)] <colinclark> but is it a question of how to load dependencies?

[10:25:56 CDT(-0500)] <yura1> yes

[10:27:00 CDT(-0500)] <colinclark> We need some way for a module to contribute itself to the overall system

[10:27:23 CDT(-0500)] <colinclark> I guess Node's only scheme for this sort of thing is an explicit call to require() in some code somewhere?

[10:27:37 CDT(-0500)] <colinclark> Is there no "load modules from configuration" feature or anything like that?

[10:27:42 CDT(-0500)] <colinclark> Or a module we could use that does this?

[10:28:06 CDT(-0500)] <colinclark> If you remember, late in the game with Kettle, there was a means by which a module could register some configuration

[10:28:08 CDT(-0500)] <colinclark> and then be loaded

[10:31:24 CDT(-0500)] <yura1> right but it's a little mode complicated if you consider that those launch handlers are platform specific, no ?

[10:54:10 CDT(-0500)] <colinclark> just as a summary...

[10:54:18 CDT(-0500)] <colinclark> yura1 and i were talking in person after our standup meeting

[10:54:37 CDT(-0500)] <colinclark> And I suggested the possibility that we'd link any shared dependencies into the platform-specific repositories as submodules

[10:54:49 CDT(-0500)] <colinclark> so you'd, say, clone the gpii linux repository

[10:54:57 CDT(-0500)] <colinclark> and get Universal as a submodule

[12:17:56 CDT(-0500)] <Bosmon> colinclark - the "Fluid modules standard" at least makes this slightly easier - but we do need a further piece to take care of the part you describe

[12:18:09 CDT(-0500)] <Bosmon> In the "Fluid modules standard" there is simply a call to fluid.require, but the return value is irrelevant

[12:18:26 CDT(-0500)] <Bosmon> Which performs one step of the decoupling of the caller on the provider

[12:18:59 CDT(-0500)] <Bosmon> We made a half-standard for "module loader stub" which right now consists of a bunch of literal calls to fluid.require

[12:19:30 CDT(-0500)] <Bosmon> The last thing we need is a slightly harder standard for bridging between something like the JSON form that we use within Infusion to describe dependencies, and some part of the framework which spits out the fluid.require calls

[12:19:53 CDT(-0500)] <colinclark> that would be quite interesting

[12:20:02 CDT(-0500)] <colinclark> I had always hoped that our dependency JSON would be useful for something more

[13:33:29 CDT(-0500)] <Bosmon> yura, colinclark - to continue our bike-shedding about module structure

[13:33:34 CDT(-0500)] <colinclark> oh yes

[13:33:39 CDT(-0500)] <colinclark> let's paint it red

[13:33:41 CDT(-0500)] <colinclark> RED ONLY

[13:33:54 CDT(-0500)] <colinclark> And only allow BLUE bikes with CHROME into it

[13:34:52 CDT(-0500)] <Bosmon> My idea for motivating the choice is to consider that, if we are thinking about the "typical person working with the code", if it comes down to a fight between git module structure, and node module structure, we would want node module structure to win, since it is what governs whether the code is immediately ready to run or not

[13:35:12 CDT(-0500)] <Bosmon> That is, I'm assuming that the ideal we are aiming for is for whatever is "checked out with our script" to be ready to run immediately without any further configuration

[13:35:56 CDT(-0500)] <Bosmon> Well, I guess this is ONE of the considerations motivating a choice

[13:37:52 CDT(-0500)] <yura> colinclark: catching up

[13:38:52 CDT(-0500)] <yura> Bosmon: agreed, but why can we combine both, i.e. place git submodules in a way that does not interfere with the node structure.

[13:39:10 CDT(-0500)] <yura> this was sort of the intention with the node_modules repo in the biginning

[13:39:22 CDT(-0500)] <Bosmon> Ah, I never saw the node_modules repo

[13:39:28 CDT(-0500)] <Bosmon> What was the planned layout for that?

[13:41:01 CDT(-0500)] <Bosmon> And so the other criterion, other than "working out of the box" is the criterion of not annoying a person who is working with more the one repo, by checking out duplicate copies of the universal repo

[13:41:18 CDT(-0500)] <Bosmon> For example, imagine a branch manager or KINGG, who needs to review some patches or make some coordinated change

[13:41:32 CDT(-0500)] <Bosmon> They will really prefer to just have one copy of everything

[13:41:46 CDT(-0500)] <Bosmon> Which to me, motivates putting the universal repo at a higher level to the platform repos, rather than a lower one

[13:42:29 CDT(-0500)] <Bosmon> As you mentioned on the call this morning, in order for the search paths to work, this actually implies checking it out into a directory named "node_modules" which is a sibling of the platform repos

[13:46:18 CDT(-0500)] <yura> so what is the issue of having something like this:

[13:48:02 CDT(-0500)] <yura> http://pastie.org/3636653

[13:48:51 CDT(-0500)] <Bosmon> Because someone who worked with both the Linux and Windows repos would end up with two copies of the universal repo at different paths?

[13:51:53 CDT(-0500)] <yura> Bosmon: I m not sure i am convinced that this is a valid use case. I think in case like taht we should just have the "whole world" repository that grabs all platforms + univeral

[13:52:26 CDT(-0500)] <Bosmon> Well, I think this is the issue, between "scripts" and "repos"

[13:52:37 CDT(-0500)] <Bosmon> If the organisation is done by a script, you have a choice of scripts

[13:52:42 CDT(-0500)] <Bosmon> But if the organisation is done by a repo, you have no choice

[13:53:16 CDT(-0500)] <Bosmon> So, your "whole world repo" could not exist under your model, because the universal repo is already present within the submodules....

[13:53:27 CDT(-0500)] <Bosmon> So, we could have a "whole world script", rather than a "whole world repo"

[13:53:37 CDT(-0500)] <yura> right

[13:53:52 CDT(-0500)] <Bosmon> But we couldn't have either of them if universal repo is forced to appear by git repo linking

[13:54:01 CDT(-0500)] <Bosmon> So I suggest we don't have any git repo linking at all, but just have scripts

[13:55:38 CDT(-0500)] <Bosmon> To "minimise the cost of disagreeing" : P

[13:58:57 CDT(-0500)] <Bosmon> Well

[13:59:24 CDT(-0500)] <Bosmon> I wonder if there is actually a problem - do you know how git behaves on unexpectedly discovering a repository at a subdirectory path?

[13:59:33 CDT(-0500)] <Bosmon> Does it throw a fit, or does it do something sensible.....

[14:00:20 CDT(-0500)] <Bosmon> http://stackoverflow.com/questions/2317652/nested-git-repositories-without-submodules

[14:00:42 CDT(-0500)] <Bosmon> It sounds like it does something sensible

[14:00:54 CDT(-0500)] <Bosmon> And can just ignore the material, like any other files

[14:01:58 CDT(-0500)] <Bosmon> http://stackoverflow.com/questions/918768/are-git-submodules-the-only-safe-way-to-have-working-copies-within-working-copie

[14:02:22 CDT(-0500)] <Bosmon> "It's possible to simply "nest" working copies in Git. "

[14:02:45 CDT(-0500)] <Bosmon> Why is it when Linus is ever seen to have made a choice, he has unerringly done the right thing : P

[14:02:55 CDT(-0500)] <Bosmon> Stick that in your SVN pipe and smoke it.......

[14:42:28 CDT(-0500)] <yura> haha

[14:42:41 CDT(-0500)] <yura> so what is the consensus, Bosmon?

[15:03:31 CDT(-0500)] <yura> colinclark: do we now submit pull request for any changes to universal ?