Skip to main content
Thank you for your interest in contributing to Aurora! This guide will help you understand our contribution process and standards.

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 info@arvoai.ca.

Getting Started

Before contributing, familiarize yourself with:

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

  1. Check existing issues: Search the issue tracker to see if your bug/feature is already being discussed
  2. Discuss major changes: For significant changes, open an issue first to discuss your approach
  3. Update your fork: Make sure your fork is up to date with the upstream repository
  4. 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: Naming rules:
  • 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:
Good commit messages:
  • “Add AWS cost optimization recommendations”
  • “Fix GCP authentication timeout error”
  • “Refactor database connection pooling”
  • “Update Kubernetes deployment guide”
Bad commit messages:
  • “Fix bug”
  • “Updates”
  • “WIP”
  • “asdf”

6. Push to Your Fork

Push your branch to your GitHub fork:

7. Open a Pull Request

  1. Go to the main Aurora repository
  2. You should see a prompt to create a PR from your recently pushed branch
  3. Click “Compare & pull request”
  4. Ensure the PR targets the main branch of the upstream repository
  5. 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
PR Title Format:
  • 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:
New commits will automatically appear in the PR.

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:
Import Organization:
Error Handling:
Database Queries:
Flask Routes:

TypeScript (Frontend)

Naming Conventions:
React Components:
API Calls:
Path Aliases:

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)
When adding environment variables:
  1. Add to both files
  2. Add to .env.example with documentation
  3. Update relevant documentation
The CI pipeline will automatically validate env var consistency.

Environment Variables

When adding new environment variables:
  1. Add to .env.example with clear documentation:
  1. Update Docker Compose files (both dev and prod):
  1. Update documentation in relevant guides

Reporting Bugs

When reporting bugs, include:
  1. Description: Clear description of the bug
  2. Steps to Reproduce: Detailed steps to reproduce the issue
  3. Expected Behavior: What you expected to happen
  4. Actual Behavior: What actually happened
  5. Environment:
    • OS and version
    • Docker version
    • Browser (for frontend issues)
    • Relevant .env configuration
  6. Logs: Relevant error messages or logs
  7. Screenshots: If applicable
Use the issue tracker with the bug label.

Suggesting Features

When suggesting features, include:
  1. Use Case: Describe the problem you’re trying to solve
  2. Proposed Solution: Your suggested approach
  3. Alternatives: Other solutions you’ve considered
  4. Additional Context: Any other relevant information
Open an issue with the enhancement label.

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:

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