Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

The code base for this project is under heavy and recent development. Please expect nothing from it for the time being; there is not yet a version that we consider "stable".

Bugs

Bugs should be filed in our bug tracker. Questions and comments can be sent to the developer mailing list: ramcloud-dev.

...

  • GNU Make (Anything reasonably recent)
  • GNU g++ (>= 4.4.6)
  • git (>= 1.6.0)
  • Perl (Anything reasonably recent)
    • For mergedeps.pl, which automatically inserts included headers in source files into the make dependencies.
  • Python 2.6, epydoc 
  • Boost
    • If you're having issues with Boost on Ubuntu, check boost ticket #3844.
  • pcre
  • Doxygen 1.7.2
  • protocol buffers

...

Install from sources: libevent-2.0.20-stable, protobuf-2.4.1, cryptopp560, gcc-4.4.6

Source Code

For

...

Core Developers

For those with accounts on fiz.stanford.edu, which currently hosts our git repository, clone from here for write access:

No Format
git clone gitssh://fiz.stanford.edu/git/ramcloud.git
cd ramcloud
git submodule update --init --recursive
make logcabin
ln -s ../../hooks/pre-commit .git/hooks/pre-commit

(Notes: the git submodule update retrieves additional repos needed to build RAMCloud, such as gtest and logcabin; the ln -s command arranges for various consistency checks to run during commits, such as ensuring the absence of carriage returns)Don't worry about having

For Read-Only Access

Use the same instructions as above, except replace "ssh:" with "git:" in the git clone command. With this approach you don't need to have an account on fiz, and you can't push commts to the repository. With read-only access; it really shouldn't impede you. We'd prefer to pull changes from you or have you send patches (see git-format-patch). This lets us ensure that the fiz repo is generally in a working state and is making forward progress.

For Core Developers

For those with fiz accounts clone from here for write access:

No Format
git clone ssh://fiz.stanford.edu/git/ramcloud.git
cd ramcloud
git submodule update --init --recursive
make logcabin
ln -s ../../hooks/pre-commit .git/hooks/pre-commit

Compiling

...

, you can send us patches, or we can pull them from your repository.

Compiling

No Format
cd ramcloud   
make -j12

By default, RAMCloud compiles with debugging symbols, which slows the system down considerably.  If you want to make performance measurements, recompile without debugging symbols:

 

No Format
make clean
make -j12 DEBUG=no

LogCabin

LogCabin is a distributed system that will provide a small amount of highly replicated, consistent storage. It will be used by the RAMCloud Coordinator mainly for fault tolerance. 

...

  • No commit should include changes for multiple issues. (Each commit in the push should complete or work towards a single issue.)
  • Pushes should complete any issues they start, but individual commits within a push do not need to complete an issue.
  • If at all possible, each commit should represent a version of the system that actually works (e.g., passes all unit tests and runs simple apps and system tests). This is important so that people can use git bisect to hunt down the commit that caused a bug: if commits are broken, git bisect won't work.
  • All commit messages should be meaningful without looking at the diff. (By reading a commit message, you should get some idea of what was modified and what the intent was. If you can't fit this in one line, skip a line and then write more.)

...