Thank you for your interest in contributing to Cozymori! We welcome contributions from everyone. By participating in our projects, you agree to abide by our Code of Conduct.
Before contributing, please ensure you have:
- A GitHub account
- Git installed on your local machine
- Basic understanding of Git and GitHub workflow
- Familiarity with the project's technology stack
- Fork the repository to your GitHub account
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/REPOSITORY-NAME.git
cd REPOSITORY-NAME- Add the original repository as an upstream remote:
git remote add upstream https://github.com/Cozymori/REPOSITORY-NAME.git- Create a new branch for your work:
git checkout -b feature/your-feature-nameBefore creating an issue:
- Search existing issues to avoid duplicates
- Use the issue templates if available
- Provide clear and detailed information
When reporting bugs, include:
- Description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
- Environment details (OS, browser, version, etc.)
For feature requests, describe:
- The problem you're trying to solve
- Your proposed solution
- Alternative solutions you've considered
We encourage the use of AI tools (like GitHub Copilot, ChatGPT) to improve productivity. However, please adhere to the following:
- Verification: You are responsible for the code generated by AI. Test it thoroughly.
- Security: Do not include sensitive data or private keys in AI prompts.
- Clean Code: Remove unnecessary comments or artifacts generated by AI before committing.
- Follow the existing code style in the project
- Use meaningful variable and function names
- Write self-documenting code where possible
- Add comments for complex logic
- Keep functions small and focused
- Follow language-specific conventions
- Write tests for new features
- Ensure all existing tests pass
- Update tests when modifying existing functionality
- Aim for good test coverage
<type>(<scope>): <subject>
- type: Type of commit (required)
- scope: Scope of changes (optional)
- subject: Brief description (required)
feat: Add new feature
feat(auth): Add user signup API endpointfix: Fix bug
fix(parser): Fix null pointer exceptiondocs: Update documentation
docs(readme): Update installation guidelinesstyle: Change code formatting
style(api): Apply Prettier formattingrefactor: Improve code structure
refactor(user): Simplify UserService logictest: Add or modify tests
test(auth): Add test cases for login failureschore: Update build configuration
chore: Add *.log to .gitignoreperf: Improve performance
perf(api): Optimize database queryci: Update CI pipeline
ci: Add GitHub Actions workflowbuild: Update dependencies
build: Update webpack configurationrevert: Revert "feat: Add new feature"✅ Good:
feat(auth): Add user login functionality
fix(api): Resolve CORS issue
docs: Update API documentation❌ Bad:
feat(auth): Added user login functionality
fix(api): Resolved CORS issue
docs: Updated API documentation✅ feat(auth): Add OAuth2 authentication
❌ feat(auth): Add OAuth2 authentication with Google, Facebook, and Twitter providers✅ feat: Add new feature
❌ feat: add new feature✅ feat: Add user authentication
❌ feat: Add user authentication.feat(auth): Add login endpoint
feat(user): Add profile page
feat(api): Add rate limiting
fix(database): Fix connection pool leakfeat(api)!: Change authentication method to OAuth2
BREAKING CHANGE: JWT authentication is replaced with OAuth2.
Users need to update their authentication flow.feat(auth): Add two-factor authentication
Implement TOTP-based 2FA using Google Authenticator.
Users can enable 2FA in their account settings.
Closes #123fix(parser): Fix null pointer exception
Fixes #456
Closes #789
Related to #234revert: Revert "feat(auth): Add OAuth2 support"
This reverts commit a1b2c3d4e5f6.
Reason: OAuth2 implementation caused performance issues.Example 1: New Feature
feat(auth): Add user signup API endpointExample 2: Bug Fix
fix(parser): Fix null pointer exception in data parsingExample 3: Documentation
docs(readme): Update installation guidelinesExample 4: Style Change
style(api): Apply Prettier formattingExample 5: Refactoring
refactor(user): Simplify UserService logicExample 6: Test
test(auth): Add test cases for login failuresExample 7: Chore
chore: Add *.log to .gitignoreExample 8: Performance
perf(database): Add index to user_id columnExample 9: CI/CD
ci: Add automated testing workflowExample 10: Breaking Change
feat(api)!: Change response format to REST standard
BREAKING CHANGE: API responses now follow REST conventions.
Update client code to handle new response structure.| Type | Purpose | Example |
|---|---|---|
| feat | New feature | feat(auth): Add login |
| fix | Bug fix | fix(api): Fix CORS |
| docs | Documentation | docs: Update README |
| style | Formatting | style: Apply linter |
| refactor | Refactoring | refactor: Clean up code |
| test | Testing | test: Add unit tests |
| chore | Maintenance | chore: Update deps |
| perf | Performance | perf: Optimize query |
| ci | CI/CD | ci: Add workflow |
| build | Build system | build: Update config |
| revert | Revert | revert: Revert commit |
- Be specific: Include scope when possible
- Be concise: Keep subject line short and clear
- Be consistent: Follow team conventions
- Be descriptive: Explain what and why, not how
- Use body: Add details for complex changes
- auth: Authentication/Authorization
- api: API endpoints
- ui: User interface
- database: Database changes
- config: Configuration
- deps: Dependencies
- security: Security-related
- i18n: Internationalization
- a11y: Accessibility
- seo: SEO-related
- Ensure your code follows the project's style guidelines
- Update documentation if you're changing functionality
- Add or update tests as needed
- Run the test suite locally
- Rebase your branch on the latest upstream main/master
- Squash commits if necessary to maintain a clean history
- Push your changes to your fork
- Create a Pull Request from your branch to the upstream repository
- Fill out the PR template completely
- Link any related issues
- Request reviews from maintainers if needed
- Respond to feedback promptly
- Make requested changes in new commits
- Push changes to the same branch
- Re-request review after addressing feedback
- Be patient and respectful during the review process
- Delete your local branch
- Pull the latest changes from upstream
- Keep your fork synchronized
- Check the documentation first
- Search existing issues and discussions
- Ask questions in discussions or appropriate channels
- Be clear and provide context when asking for help
We value all contributions, including:
- Code contributions
- Documentation improvements
- Bug reports
- Feature suggestions
- Helping others in the community
- Spreading the word about our projects
Contributors will be recognized in our projects' README files and release notes.
By contributing to Cozymori projects, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to Cozymori! 🎉