2010-04-19 00:00:00 +0100 by Alex R. Young

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
export PATH=~/.seeds/bin:$PATH

This provides the seed command which works a lot like

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

#!/usr/bin/env seed


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