User:Lkundrak/NodeJS

From FedoraProject

< User:Lkundrak(Difference between revisions)
Jump to: navigation, search
Line 18: Line 18:
 
* Keep npm2rpm up to date
 
* Keep npm2rpm up to date
 
* Draft NPM packaging guidelines, pass them to Packaging Commitee
 
* Draft NPM packaging guidelines, pass them to Packaging Commitee
 +
** Need to take non-NPM packages into consideration as well?
  
 
== Packages and reviews ==
 
== Packages and reviews ==

Revision as of 10:24, 21 December 2010

Contents

Packaging node.js in Fedora

Note this is work in progess!

node.js is an asynchronous I/O based runtime for v8 JavaScript engine.

The purpose of this page is to keep track of node.js packaging state, so that it's easy for anyone to to join the efforts and contribute. It may serve as tracker to aid transparent communication of problems we communicate solve with aid of node.js community outside Fedora (so that they know what bothers us :).

Versioning

Node.js is dependent on v8 and as such, it needs to coordinate version updates with v8 package.

Road Map

  • Get node.js into Fedora Package collection
  • Get involved with NPM so that it plays well with RPM
  • Keep npm2rpm up to date
  • Draft NPM packaging guidelines, pass them to Packaging Commitee
    • Need to take non-NPM packages into consideration as well?

Packages and reviews

Package Notes Bugzilla Ticket (review, etc.)
nodejs 634911

Integrating NPM with RPM

What's the point? I suggest you take a brief look at first few slides of my rubygem packaging presentation, just replace "ruby" with "node.js" :)

  • npm2rpm generates the RPM package skeletons from NPM metadata automatically (analogously to cpanspec).
  • There's a repos.fedorapeople.org repository with packages in development

What's below is mostly a list of NPM characteristics that look like deficiencies from RPM point of view. More-or-less ordered from most important to least.

  • Does not use pristine upstream sources, not all node.js components in the wild contain package.json
  • Unable to install to different location than what dependencies are dragged from, prevents clean unprivileged installations
    • Installing a package modifies the installed one's metadata (!?) (the dependedby symlinks)
  • Upstreams use very wild directory names in tarballs (such as: timestamp). Standardize that?
  • Useful fields are sometimes missing (license tag, homepage URL)
  • A way to skip version symlinking would be nice