Development practices

Repositories (source code)

  • Repositories are hosted in GovStack Github organization.

  • We follow “multi-repo” model were logically separate components are hosted in their own repositories.

  • Sandbox-related repositories have a sandbox- -prefix

  • By default, repositories are public, unless there is some specific reason to keep them private.

Branching and development model

Simple development model, where

  • The main -branch holds the latest version of each component

  • Feature development is done in short-lived feature branches named after the JIRA issue (e.g. SND-42-new-feature or just SND-42) that are merged to main using a pull request.

    • Since we have a small team and are still ramping up, developers can decide if they want a review (that is, one can accept their own PRs, but review is encouraged for complex changes). The PR process should nevertheless be followed.

Building block repositories

For now, we keep sandbox-related code in their own repositories to avoid conflicts with TC work (for example bb-information-mediator related code and config in sandbox-bb-informatio-mediator). In case there are several implementations of the building block, those are stored as subdirectories in the corresponding building block repository.

Eventually, when we have verified our approach and sandbox architecture, sandbox-related packaging (custom Docker images, Helm charts and so on) might be moved to corresponding bb- repositories.

Container Registry

Sandbox uses a private container registry (AWS ECR) for storing container images and Helm chars for deployment to the Sandbox. Repositories for different images should follow a namespaced naming convention: namespace/image-name, where

  • namespace is a category for the images, e.g. a building block name (im-bb)

  • image name is a descriptive name for the image (x-road-security-server)

  • In addition, tags can be used to distinguish different versions and variants of the image (latest, 7.2-slim)

For example. a full reference to an im-bb image:

https://aws_account_id.dkr.ecr.eu-central-1.amazonaws.com/im-bb/x-road-security-server:7.2-slim