Source & version control
All source code is version controlled with Git. We also use Github to host our code as well as manage projects, issues and code reviews.
Project Differences
Certain projects (EG: robin-client) may have a slightly different git flow, so please refer to project specific documentation first.
Gitflow
We use a branching model similar to gitflow but we perform code reviews on Github pull requests before it is merged upstream, we are also a small team and do not work on a develop
. When working on a feature/task/bug an engineer will go through the following steps.
- Create a new branch off of
master
prefixed by either feature/task/bug. eg:git checkout -b feature/easypayPayments
- if multiple engineers are working on the same feature they will branch off this branch.
- A draft pull request is created in Github. This has 2 benefits
- Engineers can review a diff of the branch
- CI server runs the test suite everytime a commit is made
- Draft pull request is marked as 'Ready for review'
- Additional commits may take place based on feedback
- Pull request is squashed and merged into
master
Policy with source code
- Don't leak secrets, keys or private tokens in your github repository.
- Create .gitignore files for dependencies
- Lock package versions
Services Hosted
All services are on Github. The main repos for reOS are
- https://github.com/CastleOne/phoenix Backend Service
- https://github.com/CastleOne/robin-client Client Service/UI
- https://github.com/CastleOne/phoenix-email Our transactional e-mailing system
- https://github.com/CastleOne/banking Banking Service
- https://github.com/CastleOne/devops Everything Kubernetes
- https://github.com/CastleOne/easypay-api Easypay Service
- https://github.com/CastleOne/insomnia-plugin-phoenix Documents our API calls