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.

So, first install Sputnik per Installation instructions. Then do this (from the same directory where you installed it):

git clone git://gitorious.org/sputnik/mainline.git mainline.git
bash mainline.git/scripts/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.

Submitting Patches

If you only want to submit a single patch to Sputnik, then the easiest thing to do is to generate the patch with git and email it to the Mailing List.

To do so, edit some of the files in mainline.git until you achieve the desired change. Then do this:

cd mainline.git
git diff -p > my_fix.patch

Then send us the content of my_fix.patch.

If you are planning on making lots of complicated changes, the best thing to do go to our project on gitorious and create a "clone" and email us the link to it when you are done. We can then just pull your changes from gitorious.

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