Skip to content

Latest commit

 

History

History
90 lines (65 loc) · 3.72 KB

CONTRIBUTING.md

File metadata and controls

90 lines (65 loc) · 3.72 KB

Contributing

I value contributions to Enviable--bug reports, discussions, feature requests, and code contributions. New features should be proposed and discussed in an issue.

Before contributing patches, please read the Licence.

Enviable is governed under the Contributor Covenant Code of Conduct.

Code Guidelines

I have several guidelines to contributing code through pull requests:

  • All code changes require tests. In most cases, this will be added or updated unit tests. I use ExUnit.

  • I use code formatters, static analysis tools, and linting to ensure consistent styles and formatting. There should be no warnings output from compile or test run processes. I use mix compile --warnings-as-errors, Credo, and mix format (with Styler)

  • Proposed changes should be on a thoughtfully-named topic branch and organized into logical commit chunks as appropriate.

  • Use Conventional Commits with our conventions.

  • Versions must not be updated in pull requests.

  • Documentation should be added or updated as appropriate for new or updated functionality.

  • New dependencies are discouraged and their addition must be discussed, regardless whether it is a development dependency, optional dependency, or runtime dependency.

  • All GitHub Actions checks marked as required must pass before a pull request may be accepted and merged.

Commit Conventions

Enviable has adopted a variation of the Conventional Commits format for commit messages. The following types are permitted:

Type Purpose
feat A new feature
fix A bug fix
chore A code change that is neither a bug fix nor a feature
docs Documentation updates
deps Dependency updates, including GitHub Actions.

I encourage the use of Tim Pope's or Chris Beam's guidelines on the writing of commit messages

I require the use of git trailers for specific additional metadata and strongly encourage it for others. The conditionally required metadata trailers are:

  • Breaking-Change: if the change is a breaking change. Do not use the shorthand form (feat!(scope)) or BREAKING CHANGE.

  • Signed-off-by: this is required for all developers except me, as outlined in the Licence.

  • Fixes or Resolves: If a change fixes one or more open issues, that issue must be included in the Fixes or Resolves trailer. Multiple issues should be listed comma separated in the same trailer: Fixes: #1, #5, #7, but may appear in separate trailers. While both Fixes and Resolves are synonyms, only one should be used in a given commit or pull request.

  • Related to: If a change does not fix an issue, those issue references should be included in this trailer.

Contributors

Austin Ziegler created Enviable.