Get started
Installing & Setting up Sirius
1 - Clone https://github.com/ministryofjustice/opg-sirius
2 - Authenticate to the ECR registry (you may need to setup AWS see New Starter Documentation):
aws-vault exec sirius-operator -- make ecr_login
3 - Ensure you have allocated Docker with sufficient resources in its settings. We recommend 6 CPUs and 8GB of Memory.
4 - Run docker prune to make sure you have enough space (Sirius uses lots of images):
docker system prune
5 - Run Setup command within the cloned repository:
git clone git@github.com:ministryofjustice/opg-sirius.git
cd opg-sirius
make dev-setup
6 - Setup local git config to receive CI notifications (make sure “firstname.lastname” matches your work email address):
git config user.name "firstname.lastname"
7 - Install pre-commmit and install the repo’s hooks:
pre-commit install
For support please ask questions in #opg-sirius-develop.
Development Workflow
Ways of working
Supervision
We use mostly a Scrum workflow with a two-week sprint cycle. Sprint planning happens on Tuesdays, with the sprint retrospective happening on the same day (to minimise travel and make sure everyone is in the same place for these ceremonies). Once planning finishes the sprint is officially started and we track progress using this sprint board.
Daily stand-up happens at 10:00 on Google Meet.
Refinement usually happens on Tuesdays every week. In these sessions we look at the product backlog. Make sure you discuss and clarify the acceptance criteria in the presented stories and raise your concerns before committing to these stories in planning.
Product backlog items may be broken into multiple smaller ones; acceptance criteria may be clarified; and dependencies, investigation, and preparatory work may be identified and agreed as technical spikes.
NOTE: Stand-ups, Refinement, Planning, Retros. If you are missing invitations to these sessions please inform the Delivery Manager.
Power of Attorney Services (Vega)
We generally work in a Kanban workflow, with a long-lived board which new stories are regularly added to.
Daily stand-up happens at 9:15 on Google Meet.
Your Delivery Manager will ensure you have been invited to other team meetings, including retrospectives, refinement and planning.
Version Control
Sirius uses Git for version control and code is hosted on GitHub. Access to the Sirius repo should have been sorted as part of the Onboarding process but if that’s not the case please follow these steps:
- If you haven’t got one yet please create a GitHub account at https://github.com/. 2FA must be enabled.
- Then email the Service Desk with your Digital Justice account and Github info and ask to be added to the Ministry of Justice GitHub organisation with write-access to Sirius repositories.
Merging to main
The main branch in Sirius is main
. To merge code to main
you need to:
- Create a feature branch (prefixed with your JIRA ticket number, e.g.
SH-133-technical-guidelines
). To update your branch dogit rebase main
and notgit merge
. We want all feature commits grouped on top ofmain
HEAD
commit,git merge
messes up this. - Open a Pull Request (PR). Please do this as soon as possible.
- Get PR approval from at least one peer.
- Get a green build from Jenkins.
- Check with your team that you can merge. You may need to create a developmemnt environment so your changes can be tested.
We don’t merge on broken builds unless if it’s a fix for a broken build. “You break it, you fix it” so please keep an eye on CI after your PR is merged.
Code Reviews
Laminas
We use the Laminas Framework for the PHP parts of the application. See the Laminas Overview