|
1 | | -## 🛠️ Contributing to Zed Cairo 🛠️ |
| 1 | +## Contributing to Zed Cairo |
2 | 2 |
|
| 3 | +Thank you for your interest in contributing to Zed Cairo! This document provides guidelines and instructions for contributing to this project. |
3 | 4 |
|
4 | | -Welcome, contributing to `zed-cairo` is easy! |
| 5 | +## Table of Contents |
5 | 6 |
|
6 | | -1. Submit or comment your intent on an issue |
7 | | -1. We will try to respond quickly |
8 | | -1. Fork this repo |
9 | | -1. Submit your PR against `main` |
10 | | -1. Address PR Review |
| 7 | +- [Code of Conduct](#code-of-conduct) |
| 8 | +- [Getting Started](#getting-started) |
| 9 | +- [Development Workflow](#development-workflow) |
| 10 | +- [Pull Request Process](#pull-request-process) |
| 11 | +- [Coding Standards](#coding-standards) |
| 12 | +- [Testing](#testing) |
| 13 | +- [Documentation](#documentation) |
| 14 | +- [Resources](#resources) |
11 | 15 |
|
12 | | -### Issue |
| 16 | +## Code of Conduct |
13 | 17 |
|
14 | | -Project tracking is done via GitHub [issues](https://github.com/trbutler4/zed-cairo). |
15 | | -First look at open issues to see if your request is already submitted. |
16 | | -If it is comment on the issue requesting assignment, if not open an issue. |
| 18 | +Please be respectful and considerate of others when contributing to this project. |
17 | 19 |
|
18 | | -### Submit PR |
| 20 | +## Getting Started |
19 | 21 |
|
20 | | -Ensure your code is well formatted, well tested and well documented. A core contributor |
21 | | -will review your work. Address changes, ensure ci passes, |
22 | | -and voilà you're a `zed-cairo` contributor. |
| 22 | +1. Ensure you have the required development tools installed: |
| 23 | + - Rust toolchain |
| 24 | + > Rust must be installed via rustup. If you have Rust installed via homebrew or otherwise, installing dev extensions will not work. |
| 25 | + - Zed editor |
| 26 | + - Scarb |
23 | 27 |
|
24 | | -### Additional Resources |
| 28 | +2. Fork the repository on GitHub. |
| 29 | + |
| 30 | +3. Clone your fork locally |
| 31 | + |
| 32 | +4. Add the original repository as an upstream remote: |
| 33 | +```bash |
| 34 | +git remote add upstream https://github.com/0xpantera/zed-cairo.git |
| 35 | +``` |
| 36 | + |
| 37 | +## Development Workflow |
| 38 | + |
| 39 | +1. **Create an Issue**: Before starting work, check existing [issues](https://github.com/0xpantera/zed-cairo/issues) to see if your intended work is already being addressed. |
| 40 | + |
| 41 | + - If you find a relevant issue, comment on it to express your interest in working on it. |
| 42 | + - If no relevant issue exists, create a new one describing the feature, enhancement, or bug fix you intend to work on. |
| 43 | + |
| 44 | +2. **Create a Branch**: Create a branch in your fork for your contribution: |
| 45 | +```bash |
| 46 | +git checkout -b feature/your-feature-name |
| 47 | +``` |
| 48 | + |
| 49 | +3. **Make Changes**: Implement your changes, following the project's coding standards. |
| 50 | + |
| 51 | +4. **Commit Your Changes**: Make commits with clear, descriptive messages: |
| 52 | + |
| 53 | +5. **Keep Your Branch Updated**: |
| 54 | +```bash |
| 55 | +git fetch upstream |
| 56 | +git rebase upstream/main |
| 57 | +``` |
| 58 | + |
| 59 | +## Pull Request Process |
| 60 | + |
| 61 | +1. Push your changes to your fork: |
| 62 | +```bash |
| 63 | +git push origin feature/your-feature-name |
| 64 | +``` |
| 65 | + |
| 66 | +Submit a pull request from your fork to the main repository. |
| 67 | + |
| 68 | +3. In your pull request description: |
| 69 | + - Reference the issue it addresses |
| 70 | + - Provide a clear description of the changes |
| 71 | + - Include any relevant documentation updates |
| 72 | + |
| 73 | +4. Wait for a review from a maintainer. |
| 74 | + |
| 75 | +5. Address any requested changes or feedback. |
| 76 | + |
| 77 | +6. Once approved, a maintainer will merge your pull request. |
| 78 | + |
| 79 | +## Coding Standards |
| 80 | + |
| 81 | +- Follow Rust's standard coding conventions |
| 82 | +- Write clear, descriptive comments |
| 83 | +- Use meaningful variable and function names |
| 84 | +- Ensure your code is well-formatted (use `cargo fmt`) |
| 85 | +- Run `cargo clippy` to check for common mistakes and improvements |
| 86 | + |
| 87 | +### Resources |
25 | 88 |
|
26 | 89 | - [Zed Editor docs](https://zed.dev/docs/) |
27 | 90 | - [Cairo Book](https://book.cairo-lang.org/) |
28 | 91 | - [Cairo tree-sitter implementation](https://github.com/starkware-libs/tree-sitter-cairo) |
29 | | - |
30 | | -Thank you for your contribution! |
| 92 | +- [Cairo Languuage Server](https://github.com/software-mansion/cairols) |
0 commit comments