mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-28 03:00:29 -04:00
166 lines
5.5 KiB
Markdown
166 lines
5.5 KiB
Markdown
# Contributing to Sim Studio
|
||
|
||
Thank you for your interest in contributing to Sim Studio! Our goal is to provide developers with a powerful, user-friendly platform for building, testing, and optimizing agentic workflows. We welcome contributions in all forms—from bug fixes and design improvements to brand-new features.
|
||
|
||
> **Project Overview:**
|
||
> Sim Studio is built with Next.js (app router), ReactFlow, Zustand, Shadcn, and Tailwind CSS. Please ensure your contributions follow our best practices for clarity, maintainability, and consistency.
|
||
|
||
---
|
||
|
||
## Table of Contents
|
||
|
||
- [How to Contribute](#how-to-contribute)
|
||
- [Reporting Issues](#reporting-issues)
|
||
- [Pull Request Process](#pull-request-process)
|
||
- [Commit Message Guidelines](#commit-message-guidelines)
|
||
- [Local Development Setup](#local-development-setup)
|
||
- [License](#license)
|
||
|
||
---
|
||
|
||
## How to Contribute
|
||
|
||
We strive to keep our workflow as simple as possible. To contribute:
|
||
|
||
1. **Fork the Repository**
|
||
Click the **Fork** button on GitHub to create your own copy of the project.
|
||
|
||
2. **Clone Your Fork**
|
||
```bash
|
||
git clone https://github.com/<your-username>/sim-studio.git
|
||
```
|
||
3. **Create a Feature Branch**
|
||
Create a new branch with a descriptive name:
|
||
|
||
```bash
|
||
git checkout -b feature/your-feature-name
|
||
```
|
||
|
||
Use a clear naming convention to indicate the type of work (e.g., `feature/`, `fix/`, `docs/`).
|
||
|
||
4. **Make Your Changes**
|
||
Ensure your changes are small, focused, and adhere to our coding guidelines.
|
||
|
||
5. **Commit Your Changes**
|
||
Write clear, descriptive commit messages that follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#specification) specification. This allows us to maintain a coherent project history and generate changelogs automatically. For example:
|
||
- `feat(api): add new endpoint for user authentication`
|
||
- `fix(ui): resolve button alignment issue`
|
||
- `docs: update contribution guidelines`
|
||
6. **Push Your Branch**
|
||
|
||
```bash
|
||
git push origin feature/your-feature-name
|
||
```
|
||
|
||
7. **Create a Pull Request**
|
||
Open a pull request against the `main` branch on GitHub. Please provide a clear description of the changes and reference any relevant issues (e.g., `fixes #123`).
|
||
|
||
---
|
||
|
||
## Reporting Issues
|
||
|
||
If you discover a bug or have a feature request, please open an issue in our GitHub repository. When opening an issue, ensure you:
|
||
|
||
- Provide a clear, descriptive title.
|
||
- Include as many details as possible (steps to reproduce, screenshots, etc.).
|
||
- **Tag Your Issue Appropriately:**
|
||
Use the following labels to help us categorize your issue:
|
||
- **active:** Actively working on it right now.
|
||
- **bug:** Something isn't working.
|
||
- **design:** Improvements & changes to design & UX.
|
||
- **discussion:** Initiate a discussion or propose an idea.
|
||
- **documentation:** Improvements or updates to documentation.
|
||
- **feature:** New feature or request.
|
||
|
||
> **Note:** If you're uncertain which label to use, mention it in your issue description and we'll help categorize it.
|
||
|
||
---
|
||
|
||
## Pull Request Process
|
||
|
||
Before creating a pull request:
|
||
|
||
- **Ensure Your Branch Is Up-to-Date:**
|
||
Rebase your branch onto the latest `main` branch to prevent merge conflicts.
|
||
- **Follow the Guidelines:**
|
||
Make sure your changes are well-tested, follow our coding standards, and include relevant documentation if necessary.
|
||
|
||
- **Reference Issues:**
|
||
If your PR addresses an existing issue, include `refs #<issue-number>` or `fixes #<issue-number>` in your PR description.
|
||
|
||
Our maintainers will review your pull request and provide feedback. We aim to make the review process as smooth and timely as possible.
|
||
|
||
---
|
||
|
||
## Commit Message Guidelines
|
||
|
||
We follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#specification) standard. Your commit messages should have the following format:
|
||
|
||
```
|
||
<type>[optional scope]: <description>
|
||
```
|
||
|
||
- **Types** may include:
|
||
- `feat` – a new feature
|
||
- `fix` – a bug fix
|
||
- `docs` – documentation changes
|
||
- `style` – code style changes (formatting, missing semicolons, etc.)
|
||
- `refactor` – code changes that neither fix a bug nor add a feature
|
||
- `test` – adding or correcting tests
|
||
- `chore` – changes to tooling, build process, etc.
|
||
- `high priority` – a high priority feature or fix
|
||
- `high risk` – a high risk feature or fix
|
||
- `improvement` – an improvement to the codebase
|
||
|
||
_Examples:_
|
||
|
||
- `feat(auth): add social login integration`
|
||
- `fix(ui): correct misaligned button on homepage`
|
||
- `docs: update installation instructions`
|
||
|
||
Using clear and consistent commit messages makes it easier for everyone to understand the project history and aids in automating changelog generation.
|
||
|
||
---
|
||
|
||
## Local Development Setup
|
||
|
||
To set up your local development environment:
|
||
|
||
1. **Clone the Repository:**
|
||
```bash
|
||
git clone https://github.com/<your-username>/sim-studio.git
|
||
```
|
||
2. **Navigate to the Project Directory:**
|
||
```bash
|
||
cd sim-studio
|
||
```
|
||
3. **Install Dependencies:**
|
||
- Using Yarn:
|
||
```bash
|
||
yarn install
|
||
```
|
||
- Or using NPM:
|
||
```bash
|
||
npm install
|
||
```
|
||
4. **Run the Development Server:**
|
||
- With Yarn:
|
||
```bash
|
||
yarn dev
|
||
```
|
||
- With NPM:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
5. **Make Your Changes and Test Locally.**
|
||
|
||
---
|
||
|
||
## License
|
||
|
||
This project is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the MIT License as well.
|
||
|
||
---
|
||
|
||
Thank you for taking the time to contribute to Sim Studio. We truly appreciate your efforts and look forward to collaborating with you!
|