Tryton Development Workflow at Openlabs
Last night as I was going through my git stash, when the mail icon on my Macbook started doing its tap dance suggesting the usual mundane result, there was an unread mail. The email was by my friend Jean from Copengo about something that I wanted to write since a long time. I quickly changed into my Star Wars t-shirt (sentimental reasons about the force) and started sabering my way through our internal workflow. For those of you, who are bored of technical jargon (I am one of them), a workflow is that which companies and individuals developing Tryton modules can adopt.
TL;DR; Here is the list of sabers that you will need to take down the Sith Lords (Stack):
Git - Version Control System
Git flow - A workflow for git
Github (Optional, but makes life easier) - Git Hosting Service
myOpenlabs for Project Management
Rietveld - For code reviews
Travis CI for Continuous Integration
Fabric for deployment
Newrelic and Sentry to make sure everything is up.
The abridged version of our workflow (The workings of Rebel Alliance)
Every module is a separate git repository owned by the Openlabs (A part of the Rebel Alliance) on Github.
Employees (and community contributors) fork the repository and send back pull requests.
The pull request is sent if the code passes the review, which is like winning against Master Yoda.
The pull requests are automatically tested by Travis, our own R2-D2, which tells us if the tests are successful.
If âall is wellâ then the code gets merged.
Customer projects are deployed to staging/production servers and open source projects are released to the python package index.
Take a step back and repeat the same action with your light saber.
The workflow in detail
Just as I finished writing this post I realised that it had become way bigger than I had expected. So I have split it into multiple parts for easier reading and posting.
Part 1: Repository Management
Part 2: Project Management (using nereid-project)
Part 3: Code Review
Part 4: Pull Requests and Continuous Integration
Part 5: Deploying and Monitoring












