Contributor Guide

Developer Guidelines

This guide describes best practices for collaborating with Orion Framework and keeping the codebase consistent, testable and easy to evolve.

Guia de Contribuição

Developer Guidelines

Este guia descreve as práticas recomendadas para colaborar com o Orion Framework e manter a base de código consistente, testável e fácil de evoluir.

Prerequisites

Architecture Standards

The project follows Clean Architecture and SOLID principles.

  • Core (core/): Only entities and interfaces, no external dependencies.
  • Application (application/): Use cases, services and CLI; depends only on contracts.
  • Infrastructure (infrastructure/): Concrete implementations (connectors, logging, persistence).

Code Style

  • Use complete type hints and from __future__ import annotations when necessary.
  • Prefer pure and composable functions in pipelines.
  • Descriptive names: Portuguese for documentation, English for code.
  • Do not wrap imports in try/except blocks.
  • Functions up to ~40 lines, extracting auxiliary responsibilities.

Pull Request Checklist

  1. Add tests for the change.
  2. Run pytest locally.
  3. Update relevant documentation.
  4. Clearly describe the PR context (with screenshots when necessary).
  5. Request review before merging.

Pré-requisitos

Padrões de Arquitetura

O projeto segue Clean Architecture e princípios SOLID.

  • Core (core/): Somente entidades e interfaces, sem dependências externas.
  • Application (application/): Casos de uso, serviços e CLI; depende apenas de contratos.
  • Infrastructure (infrastructure/): Implementações concretas (conectores, logging, persistência).

Estilo de Código

  • Use type hints completos e from __future__ import annotations quando necessário.
  • Priorize funções puras e componíveis nas pipelines.
  • Nomes descritivos: português para documentação, inglês para código.
  • Não envolva imports em blocos try/except.
  • Funções até ~40 linhas, extraindo responsabilidades auxiliares.

Checklist de Pull Request

  1. Adicione testes para a mudança.
  2. Execute pytest localmente.
  3. Atualize a documentação relevante.
  4. Descreva claramente o contexto da PR (com screenshots quando necessário).
  5. Solicite review antes do merge.