Skip to content

Node v0.12 & io.js support. - #4955

Merged
ErisDS merged 1 commit into
TryGhost:masterfrom
halfdan:iojs
Mar 9, 2015
Merged

ErisDS merged 1 commit into
TryGhost:masterfrom
halfdan:iojs

Conversation

@halfdan

@halfdan halfdan commented Feb 26, 2015

Copy link
Copy Markdown
Contributor

fixes #4811, refs #4240


This adds io.js and node v0.12 to the build matrix and upgrades dependencies to support these versions. io.js can for now only be tested with v1.2.0 as pre-built binaries for node-sass aren't available for v1.0/v1.1/v1.3 (https://github.com/sass/node-sass-binaries/).

This comment was marked as abuse.

@halfdan halfdan mentioned this pull request Feb 27, 2015
@ErisDS

ErisDS commented Feb 27, 2015

Copy link
Copy Markdown
Member

Just so I'm fully understanding, what's the WIP part of this PR? Are we waiting for node-sass?

Also - I know it's just the way it's gotta be - but sheeeeesh is that a big build matrix!

@halfdan

halfdan commented Feb 27, 2015

Copy link
Copy Markdown
Contributor Author

WIP is regarding the comment I added. The line checks for the iojs version as defined in package.json. However if node at some point reaches v1.2.0 this will also match (as I don't see a way to distinguish between the two).

What this PR adds is a v0.12 and iojs-v1.2.0 build (only iojs-v1.2.0 can be tested as node-sass only provides prebuilt binaries for this version).


  • Can we support v0.12: yes.
  • Can we support iojs: Maybe. Since node-sass is only a development dependency that is not installed for production use (e.g. with the .zip download), Ghost will run with any iojs version. Installing Ghost with dev dependencies in iojs != v1.2.0 will fail because of the missing prebuilt binaries for node-sass.
0.10 0.12 iojs-v1.0.0 iojs-v1.1.0 iojs-v1.2.0 iojs-v1.3.0
Tested on Travis y y n n y n
Runs (w/ prebuilt assets) y y y y y y

@JohnONolan

Copy link
Copy Markdown
Member

I'm starting to get really sick of SASS getting in the way of you guys - it's becoming more of a hinderance than a help to everyone, given how little ongoing SASS work there actually is. @PaulAdamDavis ... dare I say it - but maybe we should consider using something else entirely? <can-of-worms>

@framerate

Copy link
Copy Markdown

I believe the problems with node-sass have been rectified on their end, right? Or are their new problems? My build stack for my company got fixed a few weeks ago (node-sass and grunt-contrib-sass I believe we the breaking factor)

@ErisDS

ErisDS commented Mar 6, 2015

Copy link
Copy Markdown
Member

However if node at some point reaches v1.2.0 this will also match (as I don't see a way to distinguish between the two).

Can we assume that this problem will be fixed by someone else before that happens? i.e. there'll be a standard way to do it?

Can we support iojs: Maybe. Since node-sass is only a development dependency that is not installed for production use (e.g. with the .zip download), Ghost will run with any iojs version. Installing Ghost with dev dependencies in iojs != v1.2.0 will fail because of the missing prebuilt binaries for node-sass.

So the issue is, if people trying to build Ghost try to use a version of iojs we don't support, they're going to have pain? If so, we can make sure we include compatibility notices in the readme etc & other than that it's up to developers to get it right?

Ideally, I'd like to get this in before the next release, and I'd like that next release to be some time next week ;)

@halfdan

halfdan commented Mar 6, 2015

Copy link
Copy Markdown
Contributor Author

@framerate Yes and no. node-sass provides prebuilt binaries for v0.10 and v0.12 and iojs-v.1.2.0 - however not for other minor iojs versions. This means that users would have to build the package themselves which requires a few other dependencies and doesn't seem to be an easy task.

@ErisDS

Can we assume that this problem will be fixed by someone else before that happens? i.e. there'll be a standard way to do it?

Hopefully this will be resolved by npm - there are similar discussions going on over at io.js and express on how to handle engine compatibility.

So the issue is, if people trying to build Ghost try to use a version of iojs we don't support, they're going to have pain? If so, we can make sure we include compatibility notices in the readme etc & other than that it's up to developers to get it right?

Correct. As mentioned above, for iojs versions where node-sass doesn't provide prebuilt binaries, people installing Ghost development dependencies will have to compile node-sass themselves -> Pain. Another problem is that we can't run tests on travis for iojs versions where node-sass binaries aren't available, because node-sass doesn't build there (at least not without some work to install the build dependencies there first). It may very well be possible that Ghost breaks in some future iojs version but we won't notice it unless we run the test suite locally (and go through the hassle of building node-sass).

@ErisDS

ErisDS commented Mar 7, 2015

Copy link
Copy Markdown
Member

Then I think we need to un-WIP this and merge it?

Ghost is pre-built for the majority of people, if you really want to build it and use io.js then you're going to need to pay careful attention to compatibility notices. If we release Ghost with support and find that we get too many issues with people trying to build on the wrong io.js version, then we'll drop support again until we're able to more safely detect io.js and message users when they try to do the wrong thing.

@halfdan halfdan changed the title [WIP] Node v0.12 & io.js support. Node v0.12 & io.js support. Mar 9, 2015
ErisDS added a commit to ErisDS/Ghost that referenced this pull request Mar 9, 2015
refs TryGhost#4955

- needed to build on ubuntu 14.14 with node 12 (DO image)
- barely used anyway, as release task has it disabled
@ErisDS

ErisDS commented Mar 9, 2015

Copy link
Copy Markdown
Member

@halfdan just noticed, this PR doesn't have a travis build :/

fixes TryGhost#4811, refs TryGhost#4240
- Add v0.12 to the build
- Fix express tests to work with iojs/0.12
- Add iojs-v1.2.0 to the build matrix
ErisDS added a commit that referenced this pull request Mar 9, 2015
Node v0.12 & io.js support.
@ErisDS
ErisDS merged commit 45010c9 into TryGhost:master Mar 9, 2015
@martell

martell commented Mar 9, 2015

Copy link
Copy Markdown

It is a shame 0.5.9 was released 9 days ago :(
This change while quite small does alone deserve a new release tag :)
If it does in fact work as intended

@novaugust

Copy link
Copy Markdown
Contributor

@martell Not to worry; Ghost believes in a rapid release workflow. I don't think you'll be waiting too long ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for io.js

6 participants