Thank you for your interest in contributing to AshArcadic!
Prerequisites
- Elixir 1.15+ and Erlang/OTP 26+
- A sibling checkout of
arcadicat../arcadic(path dependency during co-development) - ArcadeDB for integration tests:
docker run -p 2480:2480 \ -e JAVA_OPTS="-Darcadedb.server.rootPassword=…" arcadedata/arcadedb:latest
Getting Started
git clone https://github.com/baselabs/ash_arcadic.git
cd ash_arcadic
mix deps.get
mix test
Development Workflow
- Create a feature branch from
main. - Make your changes with clear, descriptive commit messages.
- Ensure all checks pass before opening a PR:
mix format
mix credo --strict
mix compile --warnings-as-errors
mix test
mix dialyzer
- Update
CHANGELOG.mdunder[Unreleased]. - Open a Pull Request against
main.
Ash conventions
- This is an Ash data layer — a
Spark.Dsl.Extensionimplementing theAsh.DataLayerbehaviour. Learn fromash_postgres,ash_sqlite, and the siblingash_age. - Ship a
usage-rules.md(agent/consumer usage rules) and generate DSL docs viamix spark.cheat_sheetsonce thearcadeDSL section exists. - Read
AGENTS.mdbefore touching multitenancy, sensitive-data, or Cypher generation code — its Critical Rules are binding.
License
By contributing, you agree that your contributions will be licensed under the MIT License.