Skip to content
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

no longer working on node 0.12 #161

Closed
ahmadnassri opened this issue Aug 19, 2015 · 7 comments
Closed

no longer working on node 0.12 #161

ahmadnassri opened this issue Aug 19, 2015 · 7 comments

Comments

@ahmadnassri
Copy link

seems like you switched to io.js which is awesome, but there's no note on the website or anywhere in the docs that indicate that io should be used... when I upgraded my dependencies to latest version, it stopped working, till I realized its using generators and needed to switch to io

@Ajedi32
Copy link
Member

Ajedi32 commented Aug 26, 2015

You actually don't need IO.js. If you use node though it needs to be version 0.12+, and you need to run it with the --harmony_generators flag.

The test task in make does this automatically, which is why the tests pass for Node 0.12.

I agree that this should be documented somewhere.

@Ajedi32
Copy link
Member

Ajedi32 commented Aug 26, 2015

See also #151

@ahmadnassri
Copy link
Author

a few points to be made here (and in relation to #151)

  • usage of --harmony flags in node, is not a "standard" usage, so therefor, cannot expect people to understand that without proper documentation
  • the reason it's not a standard, is because ES6 is not fully implemented in Node Core, and that's primarily why io.js started (and following drama)
  • thankfully convergence is now here, and as you know, node.js and io.js are now one and the same team/project.
  • meaning, which is the most important point here: io.js releases are considered as "next" (unstable) and node.js releases are the stable ones, therefore, metalsmith is depending on an unstable functionality / branch.

now this is not a problem for me, and many others, we can simply enable the flag, or just switch to io.js ... but as a principal, I find this flawed to release stable software, but depend on unstable platform functionality (although very usable).

I certainly understand the attraction of using ES6 functionality such as generators, and I use it myself, but if I am to release a software package to the public, I would wrap it with babel.js (or similar) and make it compatible with all the supported platform versions. this is more for the community's benefit than own preferences ... if the work is just my own, i'd be on the bleeding edge at every step of course ;)

at the end of the day, this is all nothing more than an academic discussion, the software works, and better documentation of the dependency helps.

@Ajedi32
Copy link
Member

Ajedi32 commented Aug 26, 2015

Yeah, I kind of agree on your point about unstable software, and I definitely agree that this should be documented somewhere.

Regarding the io.js/node convergence, I haven't been following that drama much since the split, but from what I can see now I'm not sure your assessment of io.js as being the "unstable" release of node is correct. (Or maybe I'm just misunderstanding what you were trying to say.)

Based on what I read in nodejs/node#2327, it seems like what we currently call io.js is effectively being renamed to "Node.js", and changes from the old Node.js are being merged into that project. Versions 0.12.x and older of Node.js will be from the old Node.js, and new releases will start from v4.0 and be based on io.js plus all the upstream changes from the old Node.js.

From an outsider's perspective, this basically means Node.js's next major release will be version 4.0 and will include all the features from io.js and more, and that io.js is deprecated and will receive no new major releases.

With that in mind, I think the best course of action for Metalsmith is to simply document the flags and version requirements need for it to run on Node.js, and continue stating that it's compatible with io.js. Then when Node.js 4.0 comes out, update the documentation to state that Metalsmith is compatible with all versions of io.js, Node.js version 4.0+, and Node.js 0.12.x with the --harmony_generators flag set. In future releases of Metalsmith, Node.js 0.12.x and io.js can be deprecated as necessary (though we'd of course want to keep supporting those platforms as long as is reasonably convenient).

@ahmadnassri
Copy link
Author

From an outsider's perspective, this basically means Node.js's next major release will be version 4.0 and will include all the features from io.js and more, and that io.js is deprecated and will receive no new major releases.

yep, but since 4.0 is not released yet, the io.js branches are "unstable", by standard definition :)

With that in mind, I think the best course of action for Metalsmith is to simply document the flags and version requirements need for it to run on Node.js, and continue stating that it's compatible with io.js. Then when Node.js 4.0 comes out, update the documentation to state that Metalsmith is compatible with all versions of io.js

yup 👍

woodyrew added a commit to woodyrew/metalsmith that referenced this issue Aug 27, 2015
How to use Metalsmith v2 with node.js 0.10 and 0.12 as per metalsmith#161 and metalsmith#151
@woodyrew
Copy link
Member

woodyrew commented Sep 3, 2015

@ahmadnassri I think this can be closed now. Explained in the readme: https://github.com/segmentio/metalsmith#troubleshooting

@Ajedi32
Copy link
Member

Ajedi32 commented Sep 8, 2015

Heh, well that was fast: https://nodejs.org/en/blog/release/v4.0.0/

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

No branches or pull requests

3 participants