Google Groups

Re: How to get a dev environment on Windows


August Lilleaas Mar 12, 2012 3:54 PM
Posted in group: Buster.JS development
I did the rewrite now, in the "rewrite" branch of buster-dev-tools.

Since we use npm install, and contextify is an optional dependency, contextify will no longer cause buster-dev-tools breakage on Windows - npm simply ignores failures for optional dependencies.

Faye 0.7 still fails though, but the faye 0.8 update is just around the corner.

On Mon, Mar 12, 2012 at 9:45 PM, August Lilleaas <aug...@augustl.com> wrote:
I don't agree that a working dev env for windows is more important than an easy to use installer for windows. If I had to choose, I would without a shadow of a doubt choose the installer, and rather require that the relatively few Buster.JS contributors installed Linux or used cygwin.

But thankfully we can have both :) And as outlined in previous mails, we can reuse the development environment in the installer. Put diffrently: the installer installs the development environment.


On Mon, Mar 12, 2012 at 9:26 PM, <meisl...@googlemail.com> wrote:
Maybe to clarify:
Sure the ultimate goal is to get this super-easy and shiny installer. Sure you should avoid unnecessary detours on the way - the keywords here being unnecessary (to be defined) and you (i.e. I personally may take some detours which you, of course, need not adopt).
I do understand that, especially for the TDD-inclined, it's tempting to equate "necessary" with "most simple you can think of". But hey, surely it's not on me to tell you what that presupposes. I mean tests, tests, tests and then - more tests :)

So, from my perspective, having a usable and working dev env on Windows (XP && Vista && Win7) first is an absolute "conditio sine qua non" before putting together the installer. I, for one, found that having a hodge-podge of ever-nested and ever-repeated node_modules/../node_modules/.. does NOT qualify as a usable dev env (to emphasize: speaking of dev env, NOT the installer!). I think I know what "not usable" means as I have put quite some effort into getting `npm install buster` to work somehow, then tried to do dev with it...
So, as said, I think your current dev env layout is fine, hence
  1. I'm trying to get that on disk (!), with all external deps.
  2. Once this is done I'll aim for plugging it in for basic buster usage ("basic" meaning whatever, to be defined).
  3. After that I want all tests that internal to buster to pass. At that point I'd call it not only usable but working as well.
  4. Only after that is achieved I'd bother about the bundling (be it Windows or whatever OS).
Again, I am new to mostly all of the stuff involved so I might well be missing a great deal of things. Furthermore, it's only my own humble view of things; you're the ones to decide which route to go.
I'm just trying to make you understand why I am following those "detours" (seemingly?) - hoping to get your help with one thing or another that I encounter on my way, even it's irrelevant for your route.
Being able to essentially help you would of course be even greater :)

Cheers,
meisl

A m Montag, 12. März 2012 19:36:34 UTC+1 schrieb meisl...@googlemail.com:
The installer should bundle node and npm. But I don't think the bundled node and npm commands should be exposed in PATH. They should be completely internal. So then the uninstaller doesn't need to ask the user if node should also be removed, as it's just our internal node "install" that gets wiped.
Perfect. And, BTW, that's "good windows style", too. You know, "what the heck's up with these so-called 'package-mangers' that those Unix people are so fond of?!"...

Not sure how the output of "npm root" relates to the use of NODE_PATH, but with the setup Chris suggested, we don't need to alter NODE_PATH anyway (just PATH).
It's where npm link puts its links and it's quite possible that NODE_PATH is my own invention, see initial post. Even better if you rely on neither one.
 
Regarding your linking_for_Windows branch, it seems to mostly be about making "npm link" work on windows, but with the approach we're discussing now we aren't going to use npm link at all. Relying on a big nasty hairball graph of symlinks was kind of dirty anyway... I must say I really appreciate you contributing though, so it's a shame if we don't end up using it. :)
Right & no problem at all. Your current dev layout (= flat) is good as it is IMHO - for dev. So in order to get going on Win (for me) it's necessary to have some sort of `npm link`. So I'll be using it, at least for buster-dev, and you're invited to change your mind, at any time.
I'm aware that it's rather a node/npm thing rather than a buster thing but well, I just started out with all this so for now...

Oh, and a big nasty hairball graph of dependencies you'll get, promised. Maybe this evening... :)


Am Montag, 12. März 2012 19:36:34 UTC+1 schrieb meisl...@googlemail.com:
The installer should bundle node and npm. But I don't think the bundled node and npm commands should be exposed in PATH. They should be completely internal. So then the uninstaller doesn't need to ask the user if node should also be removed, as it's just our internal node "install" that gets wiped.
Perfect. And, BTW, that's "good windows style", too. You know, "what the heck's up with these so-called 'package-mangers' that those Unix people are so fond of?!"...

Not sure how the output of "npm root" relates to the use of NODE_PATH, but with the setup Chris suggested, we don't need to alter NODE_PATH anyway (just PATH).
It's where npm link puts its links and it's quite possible that NODE_PATH is my own invention, see initial post. Even better if you rely on neither one.
 
Regarding your linking_for_Windows branch, it seems to mostly be about making "npm link" work on windows, but with the approach we're discussing now we aren't going to use npm link at all. Relying on a big nasty hairball graph of symlinks was kind of dirty anyway... I must say I really appreciate you contributing though, so it's a shame if we don't end up using it. :)
Right & no problem at all. Your current dev layout (= flat) is good as it is IMHO - for dev. So in order to get going on Win (for me) it's necessary to have some sort of `npm link`. So I'll be using it, at least for buster-dev, and you're invited to change your mind, at any time.
I'm aware that it's rather a node/npm thing rather than a buster thing but well, I just started out with all this so for now...

Oh, and a big nasty hairball graph of dependencies you'll get, promised. Maybe this evening... :)