diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d3e8d39 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,58 @@ +# Contributing + +## Workflow + +A **feature branch workflow** is followed for this repository. All development work is done on ticket branches that are merged directly into the `main` branch. + +## Pre-requisite + +- Verify that you have local git setup as mentioned in **[this guide](https://repo.seclore.com/common/user_guides/src/branch/main/docs/coding_processes.md#setting-up-base-machine)** +- A JIRA ticket should be created for the work you plan to contribute + +## Contribution Process + +### Branch Structure + +- **`main`**: Production-ready code. This branch should always be stable and deployable. All ticket branches are created from and merged into this branch. + +### Branch Naming Convention + +Create branches using the following naming structure: + +- **Format**: `ticket/` + +Examples: +- `ticket/PS-378` +- `ticket/PS-379` + +### Step-by-Step Contribution Process + +1. **Create a branch from `main`** + ```bash + git checkout main + git pull origin main + git checkout -b ticket/ + ``` + +2. **Follow standard development process**: + - Effort Estimates + - Design Documentation (if required) + - Test Cases + - Code Implementation (following project coding standards) + +3. **Raise a Pull Request** + - Create a PR **from your ticket branch into the `main` branch** + - PR title format: `() ` + - Add relevant documentation links in the PR description + - Update the PR link in the JIRA ticket comments + +4. **Code Review** + - Address review comments + - Ensure all CI checks pass + - Get required approvals + +5. **Merge to Main** + - Upon PR approval, **squash and merge** the ticket branch into `main` + - Delete the ticket branch after successful merge + +--- \ No newline at end of file