From Fedora Project Wiki
(Fix typography issues for automatic processing)
Line 50: Line 50:
== Current status ==
== Current status ==
* Targeted release: [[Releases/19 | Fedora 19 ]]  
* Targeted release: [[Releases/19 | Fedora 19 ]]  
* Last updated: (2013-01-07)
* Last updated: 2013-01-07
* Percentage of completion: 60%
* Percentage of completion: 60%



Revision as of 12:10, 28 February 2013


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-01-07
  • Percentage of completion: 60%

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.

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

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.

Comments and Discussion