Contributing to Arrow Gateway Engine

Thank you for your interest in contributing. This guide will help you get started.

Project Structure

  • ./src: Main source code.

  • ./tests: Test suite for the project.

  • ./Documentation: Documentation source files for this site.

Getting Started

  1. Fork the repository and clone your fork.

  2. Install dependencies as required by the project.

    • On Linux (Debian), you may use ./scripts/envSetup.sh for quick environment setup.

    • poetry is used to manage Python dependencies.

    • Julia dependencies must be installed manually:

    julia --project=./src/service/optimization_service/julia -e "import Pkg; Pkg.instantiate()"
    
  3. Create a new branch for your feature or bugfix:

    git checkout -b feature/your-feature-name
    

Making Changes

  • Place all source code changes in ./src.

  • Add or update tests in ./tests.

  • Add or update documentation in ./Documentation.

  • Ensure your code follows the project’s style and linting rules.

Running Tests

Run the test suite to verify your changes:

poetry run pytest

Add -s to see STDOUT output from tests.

Submitting Changes

  1. Commit your changes with clear messages.

  2. Push your branch to your fork.

  3. Open a Pull Request against the main repository.

Code Review

  • Address feedback from reviewers.

  • Ensure all tests pass before merging.

Questions?

Open an issue if you need help or clarification.

Thank you for contributing!