Thank you for considering contributing to our project! We welcome contributions of all kinds, including bug reports, feature suggestions, and code improvements. To make the contribution process smooth for everyone, please follow these guidelines.
- How to Report a Bug
- How to Suggest a Feature
- How to Set Up Your Development Environment
- Branch Naming Conventions
- Coding Guidelines
- How to Submit a Pull Request
- Review and Approval Process
- Community Guidelines
-
Search Existing Issues: Before reporting a new bug, check if it has already been reported.
-
Open a New Issue: If it’s a new bug, open an issue and include:
- A clear and descriptive title.
- Steps to reproduce the bug.
- Expected and actual results.
- Any relevant logs, screenshots, or other information.
Use our Bug Report Template for reference.
-
Search Existing Issues: Before suggesting a new feature, check if it has already been suggested.
-
Open a New Issue: If it’s a new feature, open an issue and include:
- A clear and descriptive title.
- A detailed description of the feature.
- Any potential use cases or benefits.
Use our Feature Request Template for reference.
- Fork the Repository: Fork the repository to your GitHub account.
- Clone the Repository: Clone your forked repository to your local machine.
git clone github.com/darkrockmountain/gomail.git
- Navigate to the Project Directory:
cd gomail
- Install Dependencies:
go mod tidy
- Run Tests: Ensure everything is working by running the tests.
go test ./...
To keep the repository organized, please follow these branch naming conventions:
- Feature branches:
feature/your-feature-name
- Bugfix branches:
bugfix/your-bug-name
- Documentation branches:
docs/your-doc-name
- Hotfix branches:
hotfix/your-hotfix-name
- Code Style: Follow the standard Go coding style. Run
go fmt
before committing your code. - Documentation: Ensure all public methods and packages have clear comments and documentation.
- Testing: Write tests for new features and bug fixes. Ensure existing tests pass before submitting a pull request.
- Commits: Write clear and concise commit messages. Follow the convention:
Example:
type(scope): description
feat(providers): add support for new email provider
-
Create a Branch: Create a new branch for your feature or bugfix.
git checkout -b feature/my-new-feature
-
Commit Your Changes: Commit your changes with a clear message.
git commit -m "feat: add new feature"
-
Push to Your Fork: Push your changes to your forked repository.
git push origin feature/my-new-feature
-
Open a Pull Request: Go to the original repository on GitHub and open a pull request. Provide a detailed description of your changes.
Important: Ensure that the pull request is made against the
develop
branch, not themain
branch. Otherwise, it will be automatically rejected.Use our Pull Request Template for reference.
- Review: Once a pull request is submitted, it will be reviewed by project maintainers. They will check for code quality, adherence to guidelines, and overall impact.
- Approval: If the pull request meets all requirements, it will be approved and merged. If changes are needed, feedback will be provided for updates.
- Timeline: Reviews typically take up to a few days. Please be patient as maintainers work through the review process.
- Respect: Be respectful and considerate in your interactions with others.
- Inclusivity: Ensure your contributions are inclusive and accessible to a diverse audience.
- Collaboration: Work collaboratively and be open to feedback and suggestions.
- Confidentiality: Avoid publishing others' private information, such as (but not limited to) a physical or email address, without their explicit permission.
- Code of Conduct: By participating in this project, you agree to abide by our Code of Conduct.
By following these guidelines, you will help us maintain a welcoming and productive environment for all contributors. Thank you for your contributions!