node-gitteh icon indicating copy to clipboard operation
node-gitteh copied to clipboard

windows

Open ghost opened this issue 12 years ago • 14 comments

its using the older node-waf. There is not node.gyp bindings.

is this designed to work on windows at all ?

ghost avatar Jan 30 '13 21:01 ghost

Dunno, but Node, NPM, and 99% of assets are probably designed for UNIX-like systems. Since Microsoft made Windows be the only OS that is not UNIX-like, don't expect much support on there either...

mildsunrise avatar Jan 31 '13 06:01 mildsunrise

Okay so node and npm are currently built entirely with windows in mind, that's why node-gyp exists. Not to mention the whole point of libgit2 is to be a cross-platform git implementation (yes, windows included). So what needs to be done to make this work under windows?

djrenren avatar May 29 '13 18:05 djrenren

Frankly, I prefer to understand "multiplatform" as "on every standard platform". Then Node-GYP wasn't specifically created to add support for Windows.

-- BEGIN RANT --

Microsoft paid Joyent to put some Windows support on Node.JS, but it still creates a lot of problems because you expect a path to start with /, and you expect the url module to work both on URL paths and system paths. And a lot more like these. You expect your system to be standard.

These, and more reasons, make Git itself not designed to run on Windows.

So, everyone out there, please don't use Windows. You make the others (and yourself) a huge favour by using any other platform. I wouldn't even consider Windows a platform. ;)

-- END RANT --

PD: I'm partidary of using Node-GYP, but not because of Windows support.

mildsunrise avatar May 30 '13 14:05 mildsunrise

@jmrenner IF libgit2 was to be truly crossplatform, it would have to support Solaris, SPARC, Sun OS, Windows 98/95/NT/ME, etc too. "crossplatform" doesn't necessarily mean every platform.

mildsunrise avatar May 30 '13 14:05 mildsunrise

I'd like to refer you all to the official libgit2 page: crossplatform

As you can see windows is supported. So regardless of how all of you define "crossplatform" we should be able to get this working under windows.

djrenren avatar May 30 '13 18:05 djrenren

@jmrenner

I know, but I said Git is not designed to run on non-standard systems. Of course, LibGit2/Node/Gitteh can workaround these problems but it's better to not use Windows at all.

You see, everytime Windows is booted, someone in the world gets shot.[citation needed] So, instead of demanding support for a corrupt platform, please make the switch. We'll (nearly) all thank you. :)

mildsunrise avatar May 30 '13 18:05 mildsunrise

@jmendeth Not sure I completely agree with you on this one.

To lead in, yes, Windows generally sucks and engineers tend to work with Linux more as it's much easier to reason with, is open source, etc. So I always considered my primary audience to be Linux/OSX users. Further, Node deployments on PaaS are the least masochistic way to get something running nowadays, and other than Azure I'm fairly sure most PaaS infrastructure out there would be Linux based.

BUT Windows support for gitteh is important, as it should be as cross platform as the native library it wraps.

That said, I have not been able to scrounge up enough time lately to do this project much justice for updating to the latest libgit2 and making install flow for Linux/OSX rock-solid as it is, let alone adding Windows to the mix. I can promise you that the current master branch is fundamentally where I want the library to be (The CoffeeScript bridge into native code will be where most of the work happens), so if anyone wants to put their hand up for making node-gyp + CMake work nicely under Windows, the Internets will be forever in your debt!

samcday avatar May 30 '13 20:05 samcday

BUT Windows support for gitteh is important, as it should be as cross platform as the native library it wraps.

Well, a wrapper's goal is to expose functionality, not to get to the same platforms. The Libgit2 guys wanted/knew/had the time to add the necessary workarounds, but I may not, and that doesn't make my wrapper a bad wrapper, does it?

That said, I won't make changes specifically to add support just for one unstandard platform. BUT if someone takes the time to do it (or it works without doing nothing), then it's fine to merge the changes. :)

Besides, by doing that we incite more people to switch, which is positive for all of us.

mildsunrise avatar May 30 '13 21:05 mildsunrise

@jmendeth I understand you hate windows. Doesn't mean people don't use it.

I get that a lot of people don't want to work with Windows or put in the work to support it. So, I return to my original question, does anyone have something resembling a list of things that need to be done in order to support windows?

If not, I'll just dig a little and see if I'm able to make it happen.

djrenren avatar May 30 '13 23:05 djrenren

@jmrenner Your last comment is spot on. There has been interest in Windows support in the past, and I am absolutely interested in making it happen for gitteh, but I personally don't have the time or care-factor to make it happen.

Here's what would need to happen though:

  • Existing native codebase of gitteh would need to be evaluated to see how hard it is to compile under MSVC.
  • Node-gyp config would need updating to handle Windows compilation.
  • libgit2 itself compiles under CMake, so build process would need to be able to trigger cmake build correctly in Windows, this process currently occurs in install.js

samcday avatar May 31 '13 03:05 samcday

@jmrenner Just a clarification. I don't hate Windows. I just don't want to spend time supporting it. That means if @samcday or you add the support for Windows, then I'm perfectly fine with it. And I'd like to use Node-GYP, but not because of the Windows support.

mildsunrise avatar May 31 '13 06:05 mildsunrise

I took a look at this, and it doesn't seem that hard.

  • The codebase looks like pretty standard C++, and the MSVC compiler is pretty good at that.
  • The node-gyp config shouldn't be too hard either; mostly it's dependencies on which and env. The libgit2 build through cmake should already work.

Expect a PR when the more immediate build issues are resolved.

ben avatar Jun 08 '13 16:06 ben

Hi guys, are there any news on this?

zaggino avatar Feb 23 '14 21:02 zaggino

@zaggino unfortunately gitteh is currently inactive, pending a primary contributor. So no, Windows support hasn't been added yet. You might want to check out nodegit, it may suit your needs.

samcday avatar Feb 24 '14 10:02 samcday