Code of Conduct
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].Getting Started
Before contributing, familiarize yourself with:- The README for project overview
- The Development Setup guide
- The Architecture Deep Dive
- The AGENTS.md for agent-specific guidelines
Types of Contributions
We welcome various types of contributions:- Bug fixes: Fix issues in existing functionality
- New features: Add new capabilities or integrations
- Documentation: Improve guides, API docs, code comments
- Performance: Optimize code or database queries
- Tests: Add or improve test coverage
- Refactoring: Improve code structure without changing behavior
Before You Start
- Check existing issues: Search the issue tracker to see if your bug/feature is already being discussed
- Discuss major changes: For significant changes, open an issue first to discuss your approach
- Update your fork: Make sure your fork is up to date with the upstream repository
- Create a feature branch: Always work in a feature branch, never directly on
main
Branch Naming Convention
Use descriptive branch names with the following prefixes:| Prefix | Purpose | Example |
|---|---|---|
feature/ | New features or enhancements | feature/add-aws-cost-optimization |
bugfix/ | Bug fixes | bugfix/fix-gcp-auth-error |
hotfix/ | Urgent production fixes | hotfix/security-patch-vault |
docs/ | Documentation updates | docs/update-kubernetes-guide |
refactor/ | Code refactoring | refactor/cleanup-db-utils |
test/ | Adding or updating tests | test/add-connector-tests |
chore/ | Maintenance, dependencies | chore/update-dependencies |
- Use lowercase
- Separate words with hyphens
- Be descriptive but concise
Development Workflow
1. Update Your Fork
Sync your fork with the latest changes:2. Create a Feature Branch
Create a new branch for your work:3. Make Your Changes
Follow these guidelines:- Write clear commit messages: Use present tense (“Add feature” not “Added feature”)
- Follow code style: See Code Style Guidelines below
- Add tests: Include tests for new functionality when applicable
- Update documentation: Update relevant docs for your changes
- Keep commits focused: Each commit should represent a logical change
4. Test Your Changes
Test your changes locally:5. Commit Your Changes
Commit with clear, descriptive messages:- “Add AWS cost optimization recommendations”
- “Fix GCP authentication timeout error”
- “Refactor database connection pooling”
- “Update Kubernetes deployment guide”
- “Fix bug”
- “Updates”
- “WIP”
- “asdf”
6. Push to Your Fork
Push your branch to your GitHub fork:7. Open a Pull Request
- Go to the main Aurora repository
- You should see a prompt to create a PR from your recently pushed branch
- Click “Compare & pull request”
- Ensure the PR targets the
mainbranch of the upstream repository - Fill out the PR template with:
- Clear description of changes
- Related issue numbers (e.g., “Fixes #123”)
- Screenshots for UI changes
- Testing steps to verify your changes
- Use present tense
- Be descriptive but concise
- Examples:
- “Add AWS EC2 instance rightsizing recommendations”
- “Fix Vault token refresh on expiration”
- “Update GCP connector to use Application Default Credentials”
8. Address Review Feedback
Respond to reviewer comments and make requested changes:9. After Your PR is Merged
Once your PR is approved and merged:Code Style Guidelines
General Principles
- Keep functions small and focused (single responsibility)
- Avoid deep nesting (max 3-4 levels)
- Write self-documenting code (clear variable/function names)
- Add comments for complex logic only
- No commented-out code in PRs
- No emojis in code or logs
Python (Backend)
Naming Conventions:TypeScript (Frontend)
Naming Conventions:Linting
Run linters before committing:Docker Compose Files
Important: Always update both Docker Compose files together:docker-compose.yaml(development)docker-compose.prod-local.yml(production)
- Add to both files
- Add to
.env.examplewith documentation - Update relevant documentation
Environment Variables
When adding new environment variables:- Add to
.env.examplewith clear documentation:
- Update Docker Compose files (both dev and prod):
- Update documentation in relevant guides
Reporting Bugs
When reporting bugs, include:- Description: Clear description of the bug
- Steps to Reproduce: Detailed steps to reproduce the issue
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Environment:
- OS and version
- Docker version
- Browser (for frontend issues)
- Relevant
.envconfiguration
- Logs: Relevant error messages or logs
- Screenshots: If applicable
Suggesting Features
When suggesting features, include:- Use Case: Describe the problem you’re trying to solve
- Proposed Solution: Your suggested approach
- Alternatives: Other solutions you’ve considered
- Additional Context: Any other relevant information
Pull Request Guidelines
- Keep PRs focused: One feature/fix per PR
- Write clear descriptions: Explain what and why, not just how
- Link related issues: Use “Fixes #123” to auto-close issues
- Add screenshots: For UI changes, include before/after screenshots
- Update documentation: Keep docs in sync with code changes
- Be responsive: Respond to review feedback promptly
- Be patient: Maintainers review PRs as time allows
Questions?
If you have questions about contributing:- Open a GitHub Discussion
- Contact maintainers: [email protected]
- Check existing issues and documentation
License
By contributing to Aurora, you agree that your contributions will be licensed under the Apache License 2.0. See LICENSE for details.Thank You!
Thank you for contributing to Aurora and helping make cloud infrastructure management more accessible!Next Steps
Development Setup
Set up your local development environment
Architecture
Learn about Aurora’s architecture
Testing Guide
Write and run tests for your changes