Contributing to Ash

View Source

Welcome!

We are delighted to have anyone contribute to Ash, regardless of their skill level or background. We welcome contributions both large and small, from typos and documentation improvements, to bug fixes and features. There is a place for everyone's contribution here. Check the issue tracker or join the ElixirForum/discord server to see how you can help! Make sure to read the rules below as well.

Contributing to Documentation

Documentation contributions are one of the most valuable kinds of contributions you can make! Good documentation helps everyone in the community understand and use Ash more effectively.

The best way to contribute to documentation is often through GitHub's web interface, which allows you to make changes without having to clone the code locally:

For Guides:

  • While viewing any guide on the documentation website, look for the </> button in the top right of the page
  • Clicking this button will take you directly to GitHub's editing interface for that file

Guide Edit Button

For Module Documentation:

  • When viewing module documentation, the </> button will also be in the top right of the page

For Function Documentation:

  • When viewing individual functions, you'll find the </> button next to the function header

Function Edit Button

Once you click the </> button, GitHub will:

  1. Fork the repository for you (if you haven't already)
  2. Open the file in GitHub's web editor
  3. Allow you to make your changes directly in the browser
  4. Help you create a pull request with your improvements

This workflow makes it incredibly easy to fix typos, clarify explanations, add examples, or improve any part of the documentation you encounter while using Ash.

Rules

  • We have a zero tolerance policy for failure to abide by our code of conduct. It is very standard, but please make sure you have read it.
  • Issues may be opened to propose new ideas, to ask questions, or to file bugs.
  • Before working on a feature, please talk to the core team/the rest of the community via a proposal. We are building something that needs to be cohesive and well thought out across all use cases. Our top priority is supporting real life use cases like yours, but we have to make sure that we do that in a sustainable way. The best compromise there is to make sure that discussions are centered around the use case for a feature, rather than the proposed feature itself.
  • Before starting work, please comment on the issue and/or ask in the discord if anyone is handling an issue. Be aware that if you've commented on an issue that you'd like to tackle it, but no one can reach you and/or demand/need arises sooner, it may still need to be done before you have a chance to finish. However, we will make all efforts to allow you to finish anything you claim.