# Contributing
# Overview
Contributions are welcome for all huff-language ecosystem repositories, with huff-rs (opens new window) being the primary repository for Huff Language Syntax and Compilation.
Welcome, and thanks for having an interest in contributing to the Huff Language and related repositories!
All contributions are welcome! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
Contributing to Huff Language is not just limited to writing code. It can mean a wide array of things, such as participating in discussions in our discord server (opens new window) or reporting issues.
# Issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue (opens new window); it's that easy!
To run examples, make sure you update git submodules to pull down the huff-examples submodule by running git submodule update
.
# Pull Requests
The branching convention used by huff-rs (opens new window) is a stage
branch that is meant to be merged off of and is periodically merged into main
. So, when creating a feature, branch off of the stage
branch and create a pr from your branch into the stage
branch!
i.e:
To pass github actions, please run:
cargo check --all
cargo test --all --all-features
cargo +nightly fmt -- --check
cargo +nightly clippy --all --all-features -- -D warnings
In order to fix any formatting issues, run:
cargo +nightly fmt --all
# Recommended PR Template
Here is an example PR template - not strictly required, but will greatly improve the speed at which your PR is reviewed & merged!
## Overview
<Provide a general overview of what your pr accomplishes, why, and how (including links)>
## Checklist
- [x] <Ex: Added a `new` method to the Huff Lexer [here](./huff_lexer/src/lib.rs#50)>
- [x] <Ex: Fully tested the `new` method [here](./huff_lexer/tests/new.rs)>
- [ ] <Ex: Wrote documentation for the `new` method [here](./huff_lexer/README.md#20)>
When the PR checklist isn't complete, it is highly recommended to make it a draft PR. NOTE: if your PR is not complete, it will likely be changed to a draft by one of the repository admins.
For breaking changes: make sure to edit the excalidraw asset (opens new window) and export the file to ./assets/huffc.excalidraw along with an image to ./assets/huffc.png.