Skip to content

Latest commit

 

History

History
103 lines (66 loc) · 3.65 KB

File metadata and controls

103 lines (66 loc) · 3.65 KB

Contributing

Thank you for your interest in contributing to Ariadne!

We welcome bug reports, questions, pull requests, and general feedback.

We also ask all contributors to familiarize themselves with and follow project's code of conduct, available in the CODE_OF_CONDUCT.md file kept in the repository's main directory.

Reporting bugs, asking for help, offering feedback and ideas

You can use GitHub issues to report bugs, ask for help, share your ideas, or simply offer feedback. We are curious what you think of Ariadne!

Development setup

Ariadne is written to support Python 3.10, 3.11, 3.12, 3.13 and 3.14

We use Hatch for project management and just for development commands.

Quick start: run all checks before a pull request

Install just (e.g. brew install just on macOS), then run:

just check

This runs the same checks as CI: format check, type checking, tests, and integration tests.

Available commands

Run just (or just --list )to see all commands. Key commands:

Command Description
just check Run all checks (format, types, tests, integration)
just quick-check Faster: format, types, and tests only
just fmt Format code with ruff
just fmt-check Check formatting without modifying
just types Run type checking
just test Run tests with coverage
just test-all Run tests across all Python versions (3.10–3.14)
just integration Run all integration tests
just integration-env <env> Run single integration test (e.g. test-integration-fastapi)
just coverage Generate coverage report

Manual commands (Hatch)

The codebase is formatted using ruff. To format the code, use the following command:

hatch fmt
# or: just fmt

The contents of the ariadne package are annotated with types and validated using mypy. To run type checking with mypy, use:

hatch run types:check
# or: just types

Tests are developed using pytest and are managed with Hatch. We use Codecov for monitoring coverage.

To run the tests, use:

hatch test
# or: just test

To run integrations tests use:

hatch run test-integration-fastapi:test
hatch run test-integration-flask:test
hatch run test-integration-starlette:test
# or: just integration

To run all checks (formatting, type checking, and tests), you can use:

hatch run check
# or: just check

We require all changes to be done via pull requests, and to be approved by member-ranked users before merging.

Working on issues

We consider all issues which are not assigned to anybody as being available for contributors. The help wanted label is used to single out issues that we consider easier or higher priority on the list of things that we would like to see.

If you've found issue you want to help with, please add your comment to it - this lets other contributors know what issues are being worked on, as well as allowing maintainers to offer guidance and help.

Pull requests

We don't require pull requests to be followed with bug reports. If you've found a typo or a silly little bug that has no issue or pull request already, you can open your own pull request. We only ask that this PR provides context or explanation for what problem it fixes, or which area of the project it improves.