# Branch Types & Envs

This guide outlines how our Git branches align with AWS environments and drive automated deployments. It covers environment branches, short‑lived development branches (feature, release, hotfix), and a release strategy that tracks versions across stages.


# Environment Branches

The environment branches below mirror the names of our AWS environments. This one-to-one mapping means that when code is committed to any of these branches, it is automatically deployed to the corresponding AWS environment.

Branch Environment Purpose
dev Development Developer sandbox for coding and validating tests
qa Quality Assurance Stable code available for cross‑team testing
pent Penetration Testing Isolated environment for penetration testing and security validation
preprod1 Pre-Production Staging that mirrors production; releases here have passed their feed cycles
prod1 Production Customer‑facing applications running stable released code

These Environment branches form the backbone of our deployment pipeline, enabling consistent and reliable delivery across various stages of our lifecycle.


# AWS Environment Mapping

Our AWS accounts host the following environments:

  • BPO-Dev: Contains dev, qa, and preprod1 environments
  • BPO-Pent: Contains pent environment
  • BPO-Prod: Contains prod1 environment

# Development Branches

While our environment branches establish our deployment targets, we use short-lived branches to organize active development work.

# Feature Branches

Feature branches focus on a single unit of work:

  • Created from the current release branch
  • Scope limited to one task or a related set of changes
  • Requires code review before merging into dev
  • Once stable and meeting acceptance criteria, open a pull request to the release branch

Naming Convention: Must use semantic prefixes. For detailed naming conventions and examples, see Best Practices.


# Release Branches

Release branches collect all work related to a specific release:

Branch Pattern Example Purpose
release/<release-number> release/2503, release/2504 Integrates features for a specific release and enables controlled deployments

Characteristics:

  • Created at the start of a new release cycle
  • Integration points for features ready to ship
  • Used for deploying across environments
  • Used for hotfixes between releases

# Hotfix Branches

Hotfix branches are for urgent production fixes:

  • Created from a hotfix release branch (e.g., release/2509.2 if prior hotfixes exist)
  • Only for issues discovered after production deployment
  • Must be merged back into the originating release branch and the next active release branch

# Branch Lifecycle Management

  • Keep the last six release branches active
  • Delete older release branches
  • Clean up feature branches after they're merged and the sprint is complete