4
# Copyright (C) 2010 Eric Day (eday@oddments.org)
7
# Use and distribution licensed under the BSD license. See the
8
# COPYING file in the root project directory for full text.
14
If you're reading this you probably have some idea what this project
15
is all about, but if not, check out http://scalestack.org/ for more
16
details. The website covers motivation and design principals for the
17
project, as well as more detailed use cases and application-specific
18
documentation. This document focuses on the basics of getting started
19
and how to contribute to the project. If you simply want to use the
20
software from a tarball distribution, getting started is as simple as:
26
If you checked this out from Launchpad, you'll want to run the
27
following command first, and then the above commands:
35
Website: http://scalestack.org/
36
Project: https://launchpad.net/scalestack
37
IRC: #scalestack on irc.freenode.net
38
Mailing list: https://launchpad.net/~scalestack-dev
44
All code is licensed under BSD, and all contributions will be taken
45
under that license as well. Other licenses may be considered for
46
self-contained modules. No copyright assignment is needed, you (or
47
your employer) own your work. :)
49
To get started fixing bugs, improving existing modules, or adding
50
new modules, you'll want to register an account with Launchpad and
51
check out the source. This also requires having the Bazaar VCS (bzr)
52
installed. See https://help.launchpad.net/ for more details on the
53
Launchpad development process, but here is a crash-course. Once you
54
have an account and have setup your SSH key, tell bzr about it. This
55
only needs to be run once:
58
bzr whoami "John Doe <johndoe@somewhere.com>"
60
To create a local repository and check out the trunk, run:
62
bzr init-repo scalestack
64
bzr branch lp:scalestack
66
You now have a shared repository and the trunk. You generally never
67
want to make changes to trunk directly, so to start making changes,
70
bzr branch scalestack my-changes
73
This will create another branch, my-changes, in the shared repository
74
directory. Make your changes there and commit them (remember to add
75
any new files). Once you think you have something ready to share, push
76
your branch back up to Launchpad (which requires a Launchpad account).
79
bzr commit -m "Comment describing my changes"
80
bzr push lp:~johndoe/scalestack/my-changes
82
You can the propose your branch for merging into trunk on the Launchpad
83
project page. This can be done on your branch page which you can find
86
https://code.launchpad.net/scalestack
88
If you would like to add new modules, please do so in the ScaleStack
89
directory. The C++ namespace is directly translated to path names
90
there, so you'll find all code in that directory. Look around at the
91
other modules for examples on how to do so, but the minimum needed
92
is a plugin.ini and <Module Name>.cc file. Reading the documentation
93
in ScaleStack/Module.h may be helpful as well.
96
Coding Style Guidelines
97
-----------------------
99
For the sake of brevity, the guidelines will follow the Google style
100
except for where it is immediately obvious in the code, and the cases
103
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
105
Exceptions to this guide include:
107
* Comments should follow Doxygen style formatting. See existing code
109
* Opening curly braces will appear on their own line.
110
* C++ exceptions are used, and all custom exceptions should derive
112
* Public method names should be camelCase starting with lower.
113
* Private method names should be _camelCase starting with underscore
115
* Data members should always be private, and are all lower with
116
underscores, such as number_of_connections.
118
As always, these rules are up for redefining, please bring any issues
119
to light on the mailing list. :)