# Contributing to the Burn Project Welcome to the Burn project! We're thrilled that you're considering contributing to our project. Every contribution helps, and we're delighted to have you on board. ## How to Contribute? Here are some steps to guide you through the process of contributing to the Burn project: ### Step 1: Review the Issue Tickets Before you start working on a contribution, please take a moment to look through the open issues in the [issue tracker](https://github.com/burn-rs/burn/issues) for this project. This will give you an idea of what kind of work is currently being planned or is in progress. ### Step 2: Get Familiar with the Project Architecture It's crucial to have an understanding of the [project's architecture](/ARCHITECTURE.md). Familiarize yourself with the structure of the project, the purpose of different components, and how they interact with each other. This will give you the context needed to make meaningful contributions. ### Step 3: Fork and Clone the Repository Before you can start making changes, you'll need to fork the Burn repository and clone it to your local machine. This can be done via the GitHub website or the GitHub Desktop application. Here are the steps: 1. Click the "Fork" button at the top-right of this page to create a copy of this project in your GitHub account. 2. Clone the repository to your local machine. You can do this by clicking the "Code" button on the GitHub website and copying the URL. Then open a terminal on your local machine and type `git clone [the URL you copied]`. ### Step 4: Create a New Branch It's a good practice to create a new branch for each contribution you make. This keeps your changes organized and separated from the main project, which can make the process of reviewing and merging your changes easier. You can create a new branch by using the command `git checkout -b [branch-name]`. ### Step 5: Make Your Changes Once you have set up your local repository and created a new branch, you can start making changes. Be sure to follow the coding standards and guidelines used in the rest of the project. ### Step 6: Run the Pre-Pull Request Script Before you open a pull request, please run the [`run-checks.sh`](/run-before-pr.sh) script. This will ensure that your changes are in line with our project's standards and guidelines. You can run this script by opening a terminal, navigating to your local project directory, and typing `./run-checks`. ### Step 7: Submit a Pull Request After you've made your changes and run the pre-pull request script, you're ready to submit a pull request. This can be done through the GitHub website or the [GitHub Desktop application](https://desktop.github.com/). When submitting your pull request, please provide a brief description of the changes you've made and the issue or issues that your changes address. ### Optional step for VS Code: Setting up environment 1. Install the following extensions: * [rust-lang.rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) * [tamasfe.even-better-toml](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) * [serayuzgur.crates](https://marketplace.visualstudio.com/items?itemName=serayuzgur.crates) * [vadimcn.vscode-lldb](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb) 2. Open `Command Palette` with Ctrl+Shift+P or F1 and type `LLDB: Generate Launch Configurations from Cargo.toml` then select it, this will generate a file that should be saved as `.vscode/launch.json`. 3. Now you can enable breakpoint on code through IDE and then start debugging the library/binary you want, such as the following example: