Contributing to AshTui

Copy Markdown View Source

Thanks for your interest in contributing!

AshTui is built on ExRatatui. Feel free to also consider contributing on the upstream library if you're missing a feature, or something is not working. Contributions are welcome everywhere!

This guide will help you get set up.

Setup

  1. Clone the repo:
git clone https://github.com/mcass19/ash_tui.git
cd ash_tui
  1. Prerequisites:
  • Elixir 1.17+ and Erlang/OTP 26+.
  1. Fetch dependencies:
mix deps.get

Running Tests

mix test
mix test --cover        # must report >95% Total

A small number of modules are excluded from coverage in mix.exs. The threshold applies to everything else.

For an actual smoke test, open the TUI with the app under examples/.

Branching and Commits

  • Branch from main
  • Keep commits focused and atomic
  • Use descriptive commit message prefixes: feat:, fix:, docs:, test:, refactor:, chore:

Pull Requests

Before submitting a PR, make sure the following pass:

mix format --check-formatted
mix compile --warnings-as-errors
mix credo --strict
mix dialyzer
mix test --cover
  • Keep PRs focused — one feature or fix per PR
  • Add tests for new functionality
  • Add @doc, @spec, and @moduledoc for new public functions and modules
  • Update documentation (moduledocs, CHANGELOG, README if applicable)
  • For breaking changes, include migration notes in the CHANGELOG
  • Follow existing code style and patterns
  • Ensure CI passes before requesting review