NHS Notify Developer Technical Documentation

CI/CD Pull Request

Using this documentation

Please visit the NHS Service Catalogue for:

  • Use of the live NHS Notify SaaS
  • NHS Notify web site
  • Onboarding guidance
  • Customer support
  • Supplier support

Who/what is this repository is for?

  • NHS Developers working on NHS Notify
  • Those who are interested in NHS Notify architecture and how it is actively developed

Who/what is this repository not for?

  • Customer Support
  • Supplier Support

What this repo contains

  • High level developer documentation for source code location, and build process.
  • Acts as the “root” for all separate public NHS Notify repositories.

What this repo does not contain

  • Any configuration of details of the Deployment phases or infrastructure of the NHS Notify Platform.
  • Information about the NHS England hosted NHS Notify platform

Table of Contents

Documentation

Setup

Clone the repository

git clone https://github.com/NHSDigital/nhs-notify.git
cd nhs-notify
code project.code-workspace

Prerequisites

The following software packages, or their equivalents, are expected to be installed and configured:

  • Docker container runtime or a compatible tool, e.g. Podman,
  • asdf version manager,
  • GNU make 3.82 or later,
  • GNU coreutils and GNU binutils may be required to build dependencies like Python, which may need to be compiled during installation. For macOS users, this has been scripted and automated by the dotfiles project; please see this script for details,
  • Python required to run Git hooks,
  • jq a lightweight and flexible command-line JSON processor.

[!NOTE]
The version of GNU make available by default on macOS is earlier than 3.82. You will need to upgrade it or certain make tasks will fail. On macOS, you will need Homebrew installed, then to install make, like so:

brew install make

You will then see instructions to fix your $PATH variable to make the newly installed version available. If you are using dotfiles, this is all done for you.

Configuration

Installation and configuration of the toolchain dependencies (including pre-git hooks).

make config

Contributing

Describe or link templates on how to raise an issue, feature request or make a contribution to the codebase. Reference the other documentation files, like

  • Environment setup for contribution, i.e. CONTRIBUTING.md

Licence

Unless stated otherwise, the codebase is released under the MIT License. This covers both the codebase and any sample code in the documentation.

Any HTML or Markdown documentation is © Crown Copyright and available under the terms of the Open Government Licence v3.0.