Thank you for your interest in contributing to AshAge!
Prerequisites
- Elixir 1.15+ and Erlang/OTP 26+
- PostgreSQL 14+ with Apache AGE extension installed
- Run
CREATE EXTENSION IF NOT EXISTS age;in your test database
Getting Started
git clone https://github.com/baselabs/ash_age.git
cd ash_age
mix deps.get
mix test
Development Workflow
- Fork the repository and create a feature branch from
master - Make your changes with clear, descriptive commit messages
- Ensure all checks pass before opening a PR:
mix format # Format code
mix credo --strict # Lint
mix compile --warnings-as-errors # Zero warnings
mix test # Run tests
mix dialyzer # Type checking (slow on first run)
- Update
CHANGELOG.mdunder[Unreleased] - Open a Pull Request against
master
CI Pipeline
Every PR runs the following checks automatically:
| Check | What it does |
|---|---|
mix format --check-formatted | Enforces consistent formatting |
mix credo --strict | Lints for code quality issues |
mix compile --warnings-as-errors | Zero tolerance for compiler warnings |
mix test | Runs all tests against Apache AGE |
mix dialyzer | Static type analysis |
All checks must pass before a PR can be merged.
Code Style
- Follow existing patterns in the codebase
- Use
mix format— the.formatter.exshandles the config - Keep functions small and well-documented
- Add
@moduledocand@docto public modules and functions
Reporting Issues
Use the issue templates on GitHub. Include your Elixir, OTP, and Apache AGE versions.
License
By contributing, you agree that your contributions will be licensed under the MIT License.