Skip to content

Contributing conventions โ€‹

To maintain a consistent and organized codebase, we have established the following conventions for contributing to our project. Please adhere to these guidelines when making contributions.

Commit Messages โ€‹

We use the GitMoji convention for commit messages. This helps us maintain clarity and consistency in our commit history. So a commit message in our Project consists of <intention> [scope?][:?] <message>

  • intention: The intention you want to express with the commit, using an emoji from the list. Either in the :shortcode: or unicode format.

  • scope: An optional string that adds contextual information for the scope of the change (which we do not use in this project).

  • message: A brief explanation of the change.

Here are some examples for possible Commits:

  • ๐Ÿ› Fix error while user image is loading
  • โœจ Add editing todos
  • ๐Ÿ“ Update README with new installation instructions

Branch Naming โ€‹

When creating branches for your contributions, please use one of the following prefixes to indicate the type of work being done. This helps in categorizing and understanding the purpose of each branch at a glance.

PrefixGitmojiDescriptionExampleLabels
feature/โœจImplementing a new feature or major functionalityfeature/user-authenticationโœจ Enhancement
fix/๐Ÿ›Fixing a bug, issue, or regressionfix/crash-on-startup๐Ÿ› Bug, ๐Ÿš‘๏ธ Hotfix
docs/๐Ÿ“Documentation updates or improvementsdocs/api-usage-guide๐Ÿ“ Documentation
test/๐ŸงชAdding or updating tests (unit, integration, etc.)test/user-service-tests๐Ÿงช Testing
refactor/โ™ป๏ธCode refactoring without changing existing behaviorrefactor/database-layerโ™ป๏ธ Refactor
ui/๐Ÿ’„User interface or experience improvementsui/button-alignment๐Ÿ’„ UI/UX
ci/๐Ÿ‘ทCI/CD or automation pipeline changesci/update-pipeline๐Ÿ‘ท CI/CD
config/๐Ÿ”งConfiguration file changes or updatesconfig/update-env-variables๐Ÿ”ง Configuration
security/๐Ÿ”’๏ธFixing or improving security-related functionalitysecurity/fix-token-leak๐Ÿ”’๏ธ Security
chore/๐Ÿ› ๏ธGeneral maintenance, dependency updates, tooling, etc.chore/improve-logging๐Ÿ› ๏ธ Maintenance

Labels โ€‹

When creating pull requests and issues , please use the appropriate labels to categorize your changes. This helps maintainers quickly understand the nature of your contribution. The labels should match the prefixes used in branch naming.

LabelDescriptionColorBranch Prefix
โœจ EnhancementNew feature or request#eeff00feature/
๐Ÿ› BugSomething isn't working as intended#ff4545fix/
โš ๏ธ MistakeMistake that doesn't influence usability#ff4545fix/
๐Ÿš‘๏ธ HotfixCritical or emergency fix#b60205fix/
๐Ÿ”’๏ธ SecurityAddress security vulnerabilities#b60205security/
๐Ÿ“Œ DependenciesExternal library or package updates#4da0ffchore/
๐Ÿ“ DocumentationImprovements or additions to documentation#005999docs/
โ™ป๏ธ RefactorCode improvements without changing function#009600refactor/
๐Ÿงช TestingAdd or improve tests#00ff15test/
๐Ÿ’„ UI/UXChanges related to the user interface and experience#ff2590ui/
๐Ÿ‘ท CI/CDChanges related to continuous integration/deployment#00fff0ci/
๐Ÿ”ง ConfigurationChanges to configuration files or settings#868686config/
๐Ÿ› ๏ธ MaintenanceGeneral maintenance and updates#545454chore/
โš—๏ธ Request BuildRequests a build#00ff9d-
๐Ÿง Size AnalysisRequest for size analysis of the APK (only alongside a build request)#00a164-
๐Ÿ’ฌ DiscussionOpen discussion or brainstorming#6f22ff-
โ“ QuestionFurther information is requested#a16eff-
โŒ WontfixThis will not be worked on#ffffff-
๐Ÿ”„ DuplicateThis issue or pull request already exists#bbbbbb-
๐Ÿšง Work in ProgressThis is not yet complete#ffa500-

Note: The labels without a branch prefix are used for issues and pull requests that do not correspond to a specific branch type, such as discussions or questions.