Skip to content

Contributing to Amega AI

Contributions Welcome PRs Welcome

Thank you for your interest in contributing to Amega AI! This document provides guidelines and best practices for contributing to our project.

📋 Table of Contents

Branch Management Guidelines

Branch Structure

We follow a simple branching model with two main branches and several supporting branches:

main (production) ──────┐
develop (development) ─┼─────┐
                       │     │
                       │     ├── feature/* (new features)
                       │     │
                       │     ├── bugfix/* (bug fixes)
                       │     │
                       │     ├── release/* (release preparation)
                       │     │
                       │     └── hotfix/* (urgent fixes)
                       └─────┘

Here's what each branch is for:

  1. main branch (production)
  2. This is where the stable, production-ready code lives
  3. Only tested and approved code goes here
  4. Each commit here should be tagged with a version number (like v1.0.0)

  5. develop branch (development)

  6. This is where all new development happens
  7. All new features and bug fixes start here
  8. This branch is always ahead of main

  9. feature branches (feature/*)

  10. Created from develop branch
  11. Used for developing new features
  12. Example: feature/chat-interface, feature/user-authentication
  13. When done, merged back into develop

  14. bugfix branches (bugfix/*)

  15. Created from develop branch
  16. Used to fix bugs found during development
  17. Example: bugfix/login-error, bugfix/api-timeout
  18. When fixed, merged back into develop

  19. release branches (release/*)

  20. Created from develop when preparing a new release
  21. Used for final testing and small fixes before release
  22. Example: release/v1.1.0
  23. When ready, merged into both main and develop

  24. hotfix branches (hotfix/*)

  25. Created from main branch
  26. Used for urgent fixes needed in production
  27. Example: hotfix/security-patch
  28. When fixed, merged into both main and develop

Best Practices

  1. Branch Naming:
  2. Use descriptive, lowercase names with hyphens
  3. Follow the prefix conventions strictly
  4. Keep branch names concise but meaningful

  5. Commit Messages:

  6. Write clear, descriptive commit messages
  7. Use present tense
  8. Reference issue numbers when applicable

  9. Pull Requests:

  10. Create PRs early for visibility
  11. Include clear descriptions of changes
  12. Request reviews from relevant team members
  13. Ensure all tests pass before merging

  14. Code Review:

  15. Review PRs promptly
  16. Provide constructive feedback
  17. Ensure code meets project standards

  18. Branch Cleanup:

  19. Delete branches after merging
  20. Keep the repository clean and organized

Getting Started

  1. Fork the repository
  2. Clone your fork
  3. Create a new branch following the naming conventions
  4. Make your changes
  5. Submit a pull request

Questions?

If you have any questions about contributing, please open an issue in the repository or contact the maintainers.

Thank you for contributing to Amega AI! 🎉