Skip to main content

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:

  1. If you haven’t got one yet please create a GitHub account at https://github.com/. 2FA must be enabled.
  2. 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:

  1. Create a feature branch (prefixed with your JIRA ticket number, e.g. SH-133-technical-guidelines). To update your branch do git rebase main and not git merge. We want all feature commits grouped on top of main HEAD commit, git merge messes up this.
  2. Open a Pull Request (PR). Please do this as soon as possible.
  3. Get PR approval from at least one peer.
  4. Get a green build from Jenkins.
  5. 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

This page was last reviewed on 12 November 2020. It needs to be reviewed again on 10 December 2020 by the page owner #opg-sirius-develop .
This page was set to be reviewed before 10 December 2020 by the page owner #opg-sirius-develop. This might mean the content is out of date.