CONTRIBUTEContribution Guidelines

Contributing to TARS-AI

We welcome contributions from everyone, whether you’re a seasoned robotics engineer or just starting out. Here’s how you can get involved:

How to Contribute

We welcome contributions in many forms, including:

  • Code Contributions at TARS-AI.
  • CAD/Electrical Contributions at TARS-AI.
  • Documentation at Docs.
  • Bug Reports.
  • Feature Requests.

To get started, please follow these steps. For those new to GitHub, please see New to Git and GitHub? below.

Fork the Repository


Instructions Image 0

Click the “Fork” button at the top-right of a repository page to create your own copy of the repository.

ℹ️

Forking allows you to make changes in your own copy of the repository without affecting the original.

Clone Your Fork


Instructions Image 1

Open a terminal or command prompt. Navigate to the folder where you want to store the repository and clone your forked repository to your local machine:

git clone git@github.com:<your username>/<repository name>.git
cd <repository name>

Set Up Remote Repositories

Check the remote URLs. You should see your fork as origin:

git remote -v

Add the original repository as the upstream remote:

git remote add upstream git@github.com:TARS-AI-Community/<repository name>.git
ℹ️

This setup helps you fetch updates from the main repository to keep your fork up-to-date.

Create a New Branch

Always create a new branch for your changes:

git checkout -b <branch name>

Use descriptive branch names, e.g., add-new-feature or fix-bug.

ℹ️

Branches help you isolate changes and organize features.

Make Your Changes

Add, edit, or delete files in the repository and test them locally.

Commit Your Changes

Commit your work with a clear message:

git add .
git commit -m "Add a clear description of your changes"
⚠️

For non-binary files, Git tracks changes for version control. For CAD files like STL or STEP, Git stores the files as blobs without versioning.

Push to Your Fork

Push your changes to your forked repository:

git push origin <branch name>

Submit a Pull Request


Instructions Image 2

Once your changes are ready to be merged with the original, go to the original repository and click Compare & pull request (if available) or New Pull Request.


Instructions Image 3

Please provide the information above in the PR and click Create pull request.

Review and Merge

Notify @Pyrater or @Alex W on Discord in the #repo channel if your PR is ready for review. If changes are requested, update your branch locally, commit, and push again. GitHub will automatically update the PR.

Once approved, your changes will be merged into the main repository. Congratulations!

Keeping Your Fork Up-to-Date

If other contributors make changes to the main repository, keep your fork in sync:

  1. Fetch updates from the upstream repository:
    git fetch upstream
  2. Merge updates into your branch:
    git merge upstream/main
  3. Push updates to your fork:
    git push origin your-branch-name

Code Style Guidelines

To ensure consistency, please follow these guidelines:

  • Write clear, concise commit messages.
  • Adhere to the coding standards of the project.
  • Test your changes thoroughly before submitting.

Joining the Community

Connect with us and other contributors on our Discord for questions, discussions, and real-time collaboration.

Reporting Issues

Issues Tab

To report a bug or suggest a new feature, please use the Issues tab for the corresponding repository on Github or through our Discord. Include as much detail as possible, such as steps to reproduce, screenshots, or error logs.

New to Git and GitHub?

Create a GitHub Account

Create your GitHub account if you haven’t already.

Install Git

Download and install Git on your computer.

Secure Your Account

Protect your GitHub account with multi-factor authentication (MFA). Set up MFA here

Set Up SSH Key

Follow the guide to generate and add your SSH key to your GitHub account.

ℹ️

Setting up an SSH key is highly recommended for secure and streamlined operations with GitHub.

Additional Resources

👉

Documentation Contributors: @alexander-wang03