#
IBP Branching Strategy
The IBP environment uses a release-based branching strategy that organizes code changes into clear streams of work. This approach provides transparency to product, development, and infrastructure teams while enabling flexible deployment of independent features to different environments.
#
Quick Overview
Our branching strategy is built around these core principles:
- Release-based Development: Work is organized into discrete releases that can be deployed independently
- Environment Alignment: Branch names directly correspond to AWS deployment environments
- Clear Promotion Paths: Features follow predictable paths from development to production
- Flexible Deployment: Individual features can be deployed without waiting for full release cycles
- Audit Trail: Every deployment can be traced back to specific commits and releases
#
Visual Overview
The strategy is illustrated in the diagram above, showing how features flow through the development lifecycle.
#
Quick Start
- Create a feature branch from the current release branch to start work on your user story.
- Work on your feature and test in the dev environment.
- Create a PR to the release branch when your code is stable and ready for release.
- Release branches are deployed to lower environments as needed by the Infra team. Release to upper environment happens on the sprint schedule set by Agile Delivery team.
#
Documentation Structure
This guide is organized into focused sections:
- Branch Types & Environments - Understanding the different branch types and their purposes as well as the AWS environments that exist.
- Development Workflow - Learn the step-by-step process for feature development.
- Best Practices - Learn about best practices on naming branches, commit messages and code reviews.
- Release Management - Understanding release branches and how they are created, managed and deployed.
- Hotfix Process - Learn how to create a hotfix while remaining within the branching strategy guidance.
- Legacy Deployment Pipeline - Understand the historical context of our old deployment method and the challenges we faced that led us here.
Questions about the branching strategy should be directed to the Software Architecture Team.