d80f3699cd6da32193ba665fb93efb7a2c054338
Branching and Release Management Guide
Overview
This guide outlines the naming conventions, branching strategy, and merging process for our Git repository.
Branch Naming Conventions
Feature Branches
- Naming Convention:
feature/<workstream>_<version>- Example:
feature/streamlit_UI0_1.0,feature/textract_1.5
- Example:
Branching Strategy
Creating Feature Branches
- From Release Branch: Create a feature branch from
release/uat_<version>- Example: To develop Streamlit UI1 v1.5, create
feature/streamlit_UI1_1.5fromrelease/uat_1.0
- Example: To develop Streamlit UI1 v1.5, create
Merging Process
Merging to DEV
- Initial Merge: Once the feature is ready, merge the feature branch into DEV.
- Verification: Ensure the functionality is verified in DEV.
Merging to UAT
- Approval Requirement: Merge to UAT requires approval from default reviewers (Anup / Priya / Umang).
- Post-Approval Merge: After approval, merge the same feature branch that was verified in DEV into UAT.
Merging to PROD
- Final Merge: Once the feature is tested and approved in UAT, merge it into PROD.
- Complete Versions: Deployment to PROD should only be done with complete versions (e.g., v1.0, v2.0) with an appropriate release branch in place.
State of Branches
After Initial Release (v1.0)
| Workstream | DEV | UAT | PROD |
|---|---|---|---|
| Streamlit | 1.0 | 1.0 | 1.0 |
| Textract | 1.0 | 1.0 | 1.0 |
| DevOps | 1.0 | 1.0 | 1.0 |
| Data | 1.0 | 1.0 | 1.0 |
After Streamlit 1.5 and Textract 1.5
| Workstream | DEV | UAT | PROD |
|---|---|---|---|
| Streamlit | 1.5 | 1.5 | 1.0 |
| Textract | 1.5 | 1.5 | 1.0 |
| DevOps | 1.0 | 1.0 | 1.0 |
| Data | 1.0 | 1.0 | 1.0 |
Merge Restrictions
- Workstream Specific Changes: For feature branches, only changes in the respective folder are allowed. Other changes require a separate feature branch. This ensures that workstream changes are deployed to the respective infra.
- Merge Approval: Merging into DEV, UAT or PROD requires approval from default reviewers.
Refer to the branching guide in Confluence for more info on this
This guide ensures that all team members follow the best practices for branch management and releases.
Description
Languages
Python
80.5%
Jupyter Notebook
13%
HCL
3.1%
HTML
1.6%
PLpgSQL
1.5%
Other
0.2%