Login or register Large RSS Icon
Edit Icon History Icon Small RSS Icon

Source

Sputnik uses git, which is a distributed version control system. This means that you can clone and start hacking.

If you want to hack Sputnik using the latest version from source control, you are in the right place. If you simply want to install and use it, please follow the instructions on Installation.

Sputnik's repository is hosted on Gitorious, at http://gitorious.org/projects/sputnik/. You can clone it (git clone git://gitorious.org/sputnik/mainline.git), edit the code, check it into your local branch, then push it into own clone of Sputnik on gitorious. Then let me know when you've got something that you want me to pull into the mainline.

Installing from Source

Installing from source works similar to the regular Installation, except that you will need to also pull code from git and symlink it into your Sputnik installation.

Go to the directory where you want to install Sputnik, then run:

wget http://sputnik.freewisdom.org/files/sputnik_install_2008_06_22.sh
sh sputnik_install_2008_06_22.sh
git clone git://gitorious.org/sputnik/mainline.git mainline.git
bash mainline.git/link_rock.sh -i ${PWD} -g mainline.git

You will now have a standard Sputnik installation, with one extra directory ("mainline.git"), which is the git repository. Files from this directory will have been linked into "rocks" directory. If you want to edit files, edit files in "mainline.git". (If you add new files, make sure to run ./bin/luarocks-admin make-manifest after that.) See standard installation for configuration instructions. This page will only list differences from the standard installation.

Source Organization

Sputnik follows a rock-centric development model, where the code is subdivided according to the 'rock' that it will be released with. (See LuaRocks.)

The main "rock" is "sputnik". Here is a list of dependencies for it and the rocks it depends on:

sputnik -> saci, colors, cosmo (external/Kepler), markdown (external), md5 (external)
saci    -> versium, cosmo
versium -> cosmo, luafilesystem (external/Kepler), diff
colors  -> nothing
diff    -> nothing

All other rocks are optional plugins.

Other pages in this section might help you navigate the code. Architecture and Source Guided Tour should be helpful for a birds-eye view.

Powered by Sputnik | XHTML 1.1