This document outlines the guidelines for contributing to the project.
Branch names should be descriptive, reflecting the purpose of the changes, following the format below.
- Format:
<type>/<issue_number>-<brief_description>
Note: <issue_number>-
can be omitted if the modification is not based on an issue.
-
main
:- Purpose: For production use.
- Rule: Direct commits are restricted. Changes arrive via pull requests from
develop
orhotfix/
branches.
-
develop
:- Purpose: For development use.
- Rule: Direct commits are restricted. Changes arrive via pull requests from
feature/
,hotfix/
, ordocs/
branches.
-
feature/
:- Purpose: Branches for developing new features or improvements.
- Rule: After completion and testing, submit a pull request to merge into
develop
.
-
hotfix/
:- Purpose: Branches for urgent fixes.
- Rule: After fixing, submit a pull request to merge into
develop
. Also, merge the changes intomain
to ensure the fix is present in the production environment.
-
docs/
:- Purpose: Branches for documentation updates.
- Rule: Submit a pull request to merge updates into
develop
.
- feature/42-user-authentication
- hotfix/56-security-vulnerability-fix
- docs/108-update-installation-guide
This project follows a following conventional commit message format.
- Format:
type(optional scope): description
- We kindly ask you to write the
description
with a lowercase letter.
feat
: New features or additionsfix
: Bug fixesdocs
: Changes to documentationstyle
: Code style changes (formatting, missing semi colons, etc.)refactor
: Code changes that neither fix bugs nor add featurestest
: Adding or updating testschore
: Maintenance tasks
- Bad:
Made changes to login
- Good examples:
feat: introduce user profiles
fix: resolve memory leak in user sessions
docs(api): enhance API endpoint documentation
style(widgets): adjust widget styling for consistency
refactor: improve query efficiency
test: cover user deletion scenarios
chore: upgrade to webpack 5
If you are interested in the detailed specification you can visit:
When merging pull requests, we use the "squash and merge" strategy. This approach combines all commits from the branch into a single commit, ensuring our commit history remains clean and easy to follow.
- Follow the same convention rules as the Commit Message Rules
- Format:
<type>(optional scope): <description>
in lowercase
Examples:
feat: add user authentication system
fix: resolve navigation bar overlap issue
refactor: improve error handling in payment gateway
test(API): increase coverage for user authentication tests
- Create a new branch from the
develop
branch. - Follow the Branch Rules while naming your branch.
- Work on your changes locally.
- Commit your changes, ensuring to follow the project's commit message rules.
- Push your branch to the repository.
- Create a Pull Request against the original branch you branched from.
- Await code review, and address any comments as necessary.
- Fork the repository to your own GitHub account.
- Clone your forked repository locally.
- Create a new branch from the
develop
branch on your fork. - Follow the Branching Rules while naming your branch.
- Work on your changes locally.
- Commit your changes, ensuring to follow the project's commit message rules.
- Push your branch to your forked repository.
- Create a Pull Request against the
develop
branch of the original repository. - Await code review, and address any comments as necessary.