Added contributing guide

This commit is contained in:
Waleed Latif
2025-02-15 19:37:01 -08:00
parent 98e795dfd6
commit 4e9d503944
+165
View File
@@ -0,0 +1,165 @@
# 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!