-
Notifications
You must be signed in to change notification settings - Fork 146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OSX/Linux Support #26
Conversation
Also the Beta Version of OSX can be found here: And I have added a building.md file with details of how to build for OSX/Linux |
@mattclements Just downloaded, and the application won't launch... (tried rebooting and still nothing :/) OS X 10.8.3 |
@mattclements thanks for hosting Prepros. I have done some code changes on my local git repo to make it easier to port across platforms but I was unable to push it to github due to heavy raining and unavailablity of electricity and internet at my place so please give me some time. |
@mattclements We already have an open issue for Linux port, and I've already made it to work on Ubuntu. Ya, packaging remains, but there are some issues that we need to fix and make it stable on Windows before we roll out Linux builds. Mac OS X port is in the list but not a priority for now. Also, we bundle ruby binaries within installer (which will also be the case on Linux) but this may not be needed for Mac where ruby is comes pre-installed (only gems installation will be required). |
@kushalpandya Thanks for the comments - I agree with regards to the Linux Port, from my initial testing this one that I have rolled should work with Linux without any issues, and I am committed to help fix any issues with the project. I have rolled the Linux/OSX Port out of "need" for this - at work I currently use a competitor's product on OSX (you know which one), but we have some new staff starting that want to use Windows/Linux - my work on this project is to allow us to all use the same tool. Using git submodules for the Ruby Gem's allows a common link between our repository, and those of SASS, Compass etc - updating these is as simple as updating the Git Submodules. I have a few ideas to look such as:
Also bundling ruby is an interesting one... For Windows I totally agree, for OSX it is not needed (1.8.7 comes on OSX as standard and is enough to run the gem's required). For Linux this depends on the installation method we choose - Hosting within apt-get/yum etc could either require a dependancy on ruby (therefore installing will ask you to install this too); an Install Script could run the apt-get/yum on your behalf to install ruby first. I am a little against bundling ruby - as this means that the installation includes a ruby version that we must always maintain/update both the exe file, and the Linux binary before every update. @kushalpandya Have you got a forked repository of this working on Ubuntu as I can have a look at this and merge those changes into my build. @TuckerWhitehouse Thanks for the feedback, probably to do with a nasty sh script that I have had to put in to avoid a node-webkit bug. Is Prepros.app copied to your Applications folder? If so could you try running the following in Terminal, and paste the output into a new gist and post back here:
Then also try:
|
@sbspk No problem - Drop me an email (matt@mattclements.co.uk) and I will I will set you up with FTP Access so that you can upload new versions there yourself Also no problem regarding those commit's, if you push them and let me know when they are on the master branch, I will rebase my code |
@mattclements I do have forked repo, but I wasn't messing with code within repo while making it work on Ubuntu (lot of dirty work there) but you can refer to my first comment on the same issue I'm talking about which includes the details of what I did to make it work. Ya, on Linux we'll have to think of a more viable way to package. Since during my experiment, I had to install lot of dependencies just to install ruby by compiling it from source. Including pre-compiled binaries of ruby within a Regarding your comment on "changing updater for Linux and Mac", I'm not getting what you're pointing too. We have chrome extension already available. I'm already working on Firefox extension from the same code-base (in fact working on that right now ;) ), both of which should work on either of OSs. |
@kushalpandya Cool - I think we are on the same page with this! Yeoman once used a really awesome script to install their package as follows: https://github.com/tomlane/Yeoman-scripts/blob/master/scripts/old-installer.sh You would run as follows:
I was thinking of a simular thing for OSX/Linux and would allow the detection, and simple installation of Ruby using apt-get/yum etc The "changing updater for Linux and Mac" is nothing to do with the Chrome/FF Extension, but rather the current check for update which does the following:
Just need to think this out loud to work out the best way of updating within OSX/Linux. I think we should provide:
Thoughts? |
I have updated main branch with portable code so can you please take a look again ? |
@mattclements Please use curly braces because code must pass jsHint tests. |
Sorry about that! Do you want me to squash my commit's to one commit? |
P.S. Please don't pull this yet - as I would like feedback from @TuckerWhitehouse with regards to the issue before we pull |
It's ok. No need to send all commits at once. |
@mattclements You have vacation responder turned on. |
Ok - I know, sorry about that! I have just corrected the dates on this as I am actually off for another week! Just working on this while i'm off :) |
I have added keyboard shortcuts for OSX. |
Awesome thanks! Should be bind both (Windows/Linux are ok, but OSX both Ctrl + Cmd would be bound (I think thats ok...) |
Easier to install dependencies with npm install. #26
@mattclements well, this is gonna sound silly, I had a copy of node-webkit I was playing around with, and had named Prepros (in my downloads folder), then downloaded your .zip, and extracted, and Mac renamed the application to "Prepros 2", which caused launch to fail (i'm guessing your script relies on the name of the application being "Prepros") so once I moved it to Applications and renamed it, it appeared to launch successfully :) |
@TuckerWhitehouse This would work without any surprise if you have your fork of Prepros in sync with upstream, since changes in code to make it platform-independent are already done. The only concern here is how app is working actually, especially where ruby is involved. |
@kushalpandya Thank you, I'll fork later and check it out :) |
@sbspk We should be ok to merge this then :) |
There have been lots of changes here so I think we should first release version 1.4 then I will merge this. |
Can you please merge your repo with upstream so it would be easy for me to pull it. I am sorry because this is my first git project and I am complete n00b. |
@sbspk I did sorry, will rebase with Master now |
We should use same gems for all platforms. |
@sbspk Agreed, and is it a good idea to bundle Ruby with Linux - will we need 32 and 64 bit versions? |
I think bundeling 32 bit is enough because it works in both 32 and 64 bit platforms. |
Or we can have different installers for both platforms, since even node-webkit has different binaries for both. |
There is no point adding any overhead if 32 bit works. |
@mattclements What about using https://github.com/visionmedia/node-growl for linux and osx. |
@sbspk Looks like |
@kushalpandya I think we can rely on node-growl because the developer behind that is pretty strong. |
@sbspk Agreed, but the projects he has are far more important than that of node-growl, would be great if he joins in for Prepros. I went through the details of project, looks like it has better GNOME integration than |
You know the AppJS (http://appjs.org/) he can create the GUI for the three operating systems with ease, and can also add modules of Node and Ruby, so you already have everything you need to run application without the need to install these modules. Then just pack into AppJS for "EXE, APP and DEB / RPM" for installation. Just an idea to have Prepos for all operating systems most used in an easy way, in my view. |
Regarding the suggestion by @jadsonlourenco, I would say TideSDK seems more mature |
@sillero Didn't knew Wunderlist uses it, seems great option. 👍 |
Tidesdk was the first option that I considered while developing Prepros but I left it because.
I tried appjs but many things like child process doesn't work well. I think node-webkit is the best one and It also supports all the three platforms. |
TideSDK is older but very limited. node-webkit is the best currently. But what I mean is that using a framework thus facilitate the migration to all platforms. Right now I tried using Linux but I could not, I need to change the paths and adjust some things. But you guys telling me which path will follow to create a version for Linux I can help. |
Closing this for now to delete/re-add my repository and rework :) |
There isn't really any significant merit for everyone to use the "same" pre-processor on different operating systems. Just use LiveReload on Mac. The whole point of pre-processors is that different developers can use whatever languages they want, and it will convert seamlessly to whatever standard was decided for the project. |
Enables OSX & Linux Support, and included a Build Script for both OS's in order to produce: