From 4e9d50394429262cedfb10a8df2014aa7d733206 Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Sat, 15 Feb 2025 19:37:01 -0800 Subject: [PATCH] Added contributing guide --- CONTRIBUTING.md | 165 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..085c0b86f0 --- /dev/null +++ b/CONTRIBUTING.md @@ -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//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 #` or `fixes #` 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: + +``` +[optional scope]: +``` + +- **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//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!