Seed

Seed is a commonJS package manager created by Charles Jolley, and is intended to be used as part of a new set of build tools for SproutCore.
Seed requires Node to work and is installed from git like this:
git clone git://github.com/seedjs/seed
cd seed
git submodule update --init
./scripts/install.js
export PATH=~/.seeds/bin:$PATH
This provides the seed command which works a lot like RubyGems:
seed list --remote
seed install underscore
I’ve tested it with the current Node in GitHub (6e715b8) and it appears to work pretty well.
Usage in Scripts
To use Seed, scripts must load seed instead of node:
#!/usr/bin/env seed
require('module')
The script that replaces node sets up an environment that transparently loads modules using require().
Package Hosting
Seed supports pushing packages. You need to create an account first:
seed remote signup
seed remote login
seed push ./my-package
Seed’s documentation has more information on how to create and manage packages.
Comparison with Kiwi
Kiwi is similar to Seed, but works without a “stub” script:
#!/usr/bin/env node
var kiwi = require('kiwi'),
sys = require('sys')
kiwi.require('module installed with kiwi')
Another interesting difference is kiwi is built with simple shell scripts, whereas seed.js is a Node-based project (with a minor C-extension). That means kiwi install node is possible without first installing anything else. Seed is much more like a traditional package manager, although both ultimately do the same things.
