Skip to content

Commit f30fa3f

Browse files
authored
Create CONTRIBUTING.md with contribution guidelines
Added a comprehensive contributing guide for the runapi project, detailing how to contribute, project overview, and guidelines for submitting pull requests.
1 parent b0f6305 commit f30fa3f

1 file changed

Lines changed: 222 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
---
2+
3+
# Contributing to runapi
4+
5+
Thank you for your interest in contributing to **runapi** 🚀
6+
Every contribution matters — whether it’s code, documentation, tests, or ideas.
7+
8+
This guide explains **how to contribute**, **what to work on**, and **what is expected**.
9+
10+
---
11+
12+
## 🧠 About runapi
13+
14+
**runapi** is an opinionated framework built on top of **FastAPI**, focused on:
15+
16+
* File-based routing
17+
* Improved developer experience
18+
* Production-ready defaults
19+
20+
The project is still evolving, and contributions are welcome at all levels.
21+
22+
---
23+
24+
## 📋 Ways to Contribute
25+
26+
You can contribute by:
27+
28+
* Fixing bugs
29+
* Improving documentation
30+
* Adding examples
31+
* Writing tests
32+
* Improving developer experience
33+
* Suggesting features
34+
35+
If you’re new to open source, look for issues labeled **`good first issue`**.
36+
37+
---
38+
39+
## 🟢 Getting Started
40+
41+
### 1️⃣ Fork the Repository
42+
43+
Click **Fork** on GitHub and clone your fork:
44+
45+
```bash
46+
git clone https://github.com/Amanbig/runapi.git
47+
cd runapi
48+
```
49+
50+
---
51+
52+
### 2️⃣ Create a Virtual Environment
53+
54+
```bash
55+
python -m venv venv
56+
source venv/bin/activate # Linux / macOS
57+
venv\Scripts\activate # Windows
58+
```
59+
60+
---
61+
62+
### 3️⃣ Install Dependencies
63+
64+
```bash
65+
pip install -r requirements.txt
66+
```
67+
68+
> **Python 3.9+ is required**
69+
70+
---
71+
72+
## ▶️ Running the Project Locally
73+
74+
If the project includes examples:
75+
76+
```bash
77+
cd examples
78+
python main.py
79+
```
80+
81+
If not, refer to the README for current usage instructions.
82+
83+
---
84+
85+
## 🧩 Choosing an Issue
86+
87+
1. Browse open issues
88+
2. Look for labels:
89+
90+
* `good first issue`
91+
* `help wanted`
92+
3. Comment on the issue to let others know you’re working on it
93+
94+
Please wait for maintainer confirmation before starting work.
95+
96+
---
97+
98+
## 🌱 Branching Strategy
99+
100+
Create a new branch for your work:
101+
102+
```bash
103+
git checkout -b feature/short-description
104+
```
105+
106+
Examples:
107+
108+
* `fix/missing-route-error`
109+
* `docs/file-based-routing`
110+
* `test/router-discovery`
111+
112+
---
113+
114+
## 🛠️ Making Changes
115+
116+
* Keep changes **small and focused**
117+
* Follow existing project structure
118+
* Add tests when fixing bugs or adding features
119+
* Update documentation when behavior changes
120+
121+
---
122+
123+
## 🧪 Running Tests
124+
125+
If tests are present:
126+
127+
```bash
128+
pytest
129+
```
130+
131+
Make sure all tests pass before opening a PR.
132+
133+
---
134+
135+
## ✍️ Commit Message Guidelines
136+
137+
Use clear and descriptive commit messages:
138+
139+
```
140+
type: short description
141+
```
142+
143+
Examples:
144+
145+
* `fix: improve error message for missing routes`
146+
* `docs: add file-based routing explanation`
147+
* `test: add router discovery tests`
148+
149+
---
150+
151+
## 🔁 Submitting a Pull Request
152+
153+
1. Push your branch to your fork
154+
2. Open a Pull Request to the **main** branch
155+
3. Reference the related issue:
156+
157+
```
158+
Closes #12
159+
```
160+
4. Clearly explain:
161+
162+
* What was changed
163+
* Why it was changed
164+
165+
Small, focused PRs are preferred over large ones.
166+
167+
---
168+
169+
## 🔍 Pull Request Checklist
170+
171+
Before submitting, make sure:
172+
173+
* [ ] Code follows project style
174+
* [ ] Tests pass
175+
* [ ] Documentation updated (if needed)
176+
* [ ] PR references an issue
177+
178+
---
179+
180+
## 📐 Code Style Guidelines
181+
182+
* Prefer readability over cleverness
183+
* Use meaningful variable names
184+
* Keep functions small and focused
185+
* Avoid unnecessary complexity
186+
187+
---
188+
189+
## 📄 Documentation Guidelines
190+
191+
* Keep explanations concise
192+
* Use examples where possible
193+
* Assume the reader is new to the project
194+
195+
---
196+
197+
## 🤝 Code of Conduct
198+
199+
Please be respectful and inclusive.
200+
Harassment, discrimination, or abusive behavior will not be tolerated.
201+
202+
---
203+
204+
## ❓ Need Help?
205+
206+
If you’re stuck or unsure:
207+
208+
* Ask questions in the related issue
209+
* Provide logs, errors, or screenshots if relevant
210+
211+
Maintainers are happy to help 🙂
212+
213+
---
214+
215+
## ❤️ Thank You
216+
217+
Your time and effort make **runapi** better for everyone.
218+
Thanks for contributing!
219+
220+
---
221+
222+
Just say what you want next 🚀

0 commit comments

Comments
 (0)