Git Branching Conventions: Release and Dev Branches

This document outlines the standard branching pattern used for NGSS services to ensure consistency and clarity in development, testing, and release workflows.

Release Branches

Release branches are used to prepare and cut final production releases of NGSS services. These branches are intended for final builds and deploy newly released images to the SQA environment for final validation.

Production deployments are not automated from this branch, but instead occur through a manual ticketing process using the validated images built during the SQA release process. These branches are persistent and must not be deleted, as they represent the source of truth for production-ready code.

Example: Release/1.0

Dev Branches

Dev branches are used for pre-release testing, feature previews, or parallel development. They may contain experimental or staging code intended for validation in SQA or production environments. These branches can be deleted when they are no longer needed and are typically replaced by corresponding release branches once the version is finalized, effectively retiring older patterns such as test or beta releases.

Example: Dev/1.0

Version identifiers such as milestones and release candidates should be represented as project versions and Git tags.

Example: 1.0.0-M1