Ralph is an Open Source system which allows managing data centres in an easy and straightforward manner. We dont just provide the sources, all our development process, including planning, blueprinting, and even scrum sprints are done in public! Flexible and adaptable architecture behind the project encourages developers to experiment with their needs and expectations. How to become part of the development process ?
This is how you fix a bug or add a feature in few quick steps:
- fork us on GitHub,
- checkout your fork,
- write a code (with PEP8 rules), test, commit,
- push changes to your fork,
- open a pull request.
Introduce yourself at our Gitter Chat https://gitter.im/allegro/ralph, where current Ralph-related issues and concerns are aired, shared and solved.
Make your software compatible with Ralph development requirements.
- First, install
git
andVagrant
applications. - Then,
git clone https://github.com/allegro/ralph
. The "ng" branch is used by Ralph 3.0, the newest version of the software, currently under development. We do not work anymore on old 2.x branch from develop branch. - Inside "vagrant" directory you will find Vagrantfile for setting up development environment. Just type
vagrant up
to boot up complete development environment. - Now log in the virtual box environment with
vagrant ssh
. - Virtualenv is activated automatically - shell script sits in ~/bin/activate.
- Run
make menu
. - Run ralph instance with
make run
, login to the localhost:8000 usingralph
:ralph
creditentials.
Then, you are all set ! In case of problems with setting everything up, refer to the https://github.com/allegro/ralph/tree/ng/vagrant
If you want to extend Ralph by your own Django app, place your config inside
vagrant/Vagrantfile.local
(ex. synced folders). You could also attach custom
provisioning script in vagrant/provision.local.sh
.
Github issues tracker handles our development. We use milestones
for our development sprints(week, or 2 weeks per milestone) with some estimated release date. Point your browser to: https://waffle.io/allegro/ralph?label=ng for Scrum board(use milestone field for filtering) for more details.
We discuss every design decision on Github using so called "Blueprints". It's just an Github issue with some design drafts, diagrams and general discussion. You can recognise the blueprint by using 'blueprint' label on issues list.
Ready for coding? Please RTFM our technical/architecture documentation
If you want a quick response, notify @vi4m on Gitter Start your topic on Github in "issues" section. Our homepage is for general discussions. Feel free to explore beauty of Python programming. Make contributions that matters.
The answer to the question "When is it ready?" is "When it is ready" :-)
There are few simple rules:
- Blank line between
load
and the rest of a template. - Blank line between block sections.
- If you open some HTML tag or Django template tag you must indent line, excluding simple code, self-closing tags (looking for inline block and
{% url ... %}
in example). - And the last one (the most important): when you write template, let you use common sense.
All of this is for human readability not for the browsers.
Example:
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans 'Users' %}{% endblock %}
{% block sidebar %}
{% if users %}
<ul>
{% for user in users %}
<li>
<a href="{% url admin:users user.pk %}">{{ user }}</a>
</li>
{% endif %}
</ul>
{% endif %}
{% endblock %}