Node.js
Summary
The Node.js JavaScript runtime and associated ecosystem, including the npm package manager.
Owner
- Email: alvesadrian@fedoraproject.org, sgallagh@fedoraproject.org, tchollingsworth@gmail.com
People Involved - Packagers/Volunteers/Contributors
Name | IRC | Current work | Additional info |
---|---|---|---|
Michael Scherer | misc | Maniac package reviewer | UTC+2 |
Miro Hrončok | mhroncok | Reviewer | UTC+1 |
Eduardo Echeverría | echevemaster | Reviewer | UTC-4:30 |
Jamie Nguyen | jamielinux | Reviewer | UTC |
Current status
- Targeted release: Fedora 19
- Last updated: 2013-03-11
- Percentage of completion: 100%
Detailed Description
Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Benefit to Fedora
Node.js is a very popular development and deployment ecosystem. By providing Node.js in Fedora, we increase our portfolio of software development tools. By catering to Node.js developers, we have an opportunity to bring in new developer talent to Fedora.
Scope
As of 2012-12-18, the major work for the runtime of Node.js is complete and committed to Rawhide. The remaining work is around building up the surrounding ecosystem, most notably with the addition of the npm (Node-packaged modules) package manager and developing packaging guidelines around it.
As of 2012-01-08, reviews for npm and its dependency chain and draft packaging guidelines are being composed.
As of 2013-03-08, packaging guidelines have been approved by FPC and npm is in Rawhide and F18 updates-testing. The unstable version currently packaged in Fedora is scheduled to be released stable on 2013-03-11, at which point this feature will be complete.
As of 2013-03-11 Node.js upstream has released 0.10.0 and it has been built for Rawhide, along with the accompanying versions of libuv, v8 and npm. I'm leaving the Feature at 95% until we confirm that none of the other node-* packages require rebuilding to consume this new stable release. Otherwise, I believe this Feature to be complete. Sgallagh (talk) 23:30, 11 March 2013 (UTC)
How To Test
Once complete, testing should be as simple as running npm install <module>
and verifying that it behaves in the way the documentation for that module indicates. The npm registry homepage has lists of new and popular packages you can try out.
Test that a simple javascript program can be run
# yum install nodejs
$ echo 'console.log("Hello World");' > /tmp/hello.js $ node /tmp/hello.js
This should display "Hello World!"
Test that npm work and that rpm package are seen by npm
# yum install npm nodejs-mkdirp
$ npm list -g | grep mkdirp
This should show mkdirp version
Test that modules installed by rpm are usable by nodejs
# yum install npm nodejs-mkdirp
$ mkdir /tmp/hello
$ cd /tmp/hello
$ npm link mkdirp
$ cat > hello.js <<EOF var mkdirp = require('mkdirp'); mkdirp('/tmp/foo/bar/baz', function (err) { if (err) console.error(err) else console.log('pow!') }); EOF
$ node hello.js
A folder /tmp/foo/bar/baz should now exist
User Experience
The availability of the Node.js runtime and the npm package manager will be visible to developers, who will now have the opportunity to deploy Node.js applications on their Fedora systems. And this will also benefit to users, who will be able to use more easyly software like etherpad-lite or ethercalc directly on Fedora with the tradional security support offered by the distribution.
Dependencies
No other existing packages depend on this, though there are many Node-packaged modules such as less.js and some newer JQuery modules that will become available to Fedora now that we have the framework.
Contingency Plan
No contingency plan necessary. If it's not ready, the feature can be removed from the documentation until a future release. It does not impact any core functionality of the system.
Documentation
- Node.js API documentation: http://nodejs.org/api/ or in the nodejs-docs RPM.
- npm documentation: https://npmjs.org/doc/ or
man npm
Release Notes
Fedora 19 now includes the Node.js JavaScript runtime environment for developing fast, scalable network applications using the JavaScript programming language. Also included is the npm package manager that provides access to over 20,000 libraries and applications available under free and open source licenses.