Skip to content

Commit 14fbdf4

Browse files
authored
Merge pull request #86 from weklund/docs/contribute
Add CONTRIBUTING file
2 parents b49a143 + bde9005 commit 14fbdf4

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed

CONTRIBUTING.md

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# Contributing to IBind
2+
3+
Thank you for your interest in contributing to IBind! This document provides guidelines and best practices for contributing to the project.
4+
5+
## Table of Contents
6+
7+
- [Getting Started](#getting-started)
8+
- [Development Setup](#development-setup)
9+
- [Contribution Workflow](#contribution-workflow)
10+
- [Pull Request Guidelines](#pull-request-guidelines)
11+
- [Issue Guidelines](#issue-guidelines)
12+
- [Code Style](#code-style)
13+
- [Documentation](#documentation)
14+
15+
## Getting Started
16+
17+
Before you start contributing, please:
18+
19+
1. Fork the repository
20+
2. Create a new branch for your feature/fix
21+
3. Set up your development environment
22+
23+
## Development Setup
24+
25+
1. Clone your fork:
26+
27+
```bash
28+
git clone https://github.com/YOUR_USERNAME/ibind.git
29+
cd ibind
30+
```
31+
32+
2. Create and activate a virtual environment:
33+
34+
```bash
35+
python -m venv .venv
36+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
37+
```
38+
39+
3. Install development dependencies:
40+
41+
```bash
42+
pip install -r requirements-dev.txt
43+
```
44+
45+
4. Install optional oauth dependency:
46+
47+
```bash
48+
pip install -r requirements-oauth.txt
49+
```
50+
51+
## Contribution Workflow
52+
53+
### Feature Requests and Enhancements
54+
55+
1. **For new features or significant changes:**
56+
- Create an issue using the "Enhancement" template
57+
- Discuss the feature in the issue before implementing
58+
- Once there's agreement, create a draft PR
59+
- Mark the PR as "Ready for Review" when implementation is complete
60+
61+
2. **For small improvements or bug fixes:**
62+
- Create a PR directly
63+
- Include a clear description of the changes
64+
- Link to any related issues
65+
66+
### Pull Request Guidelines
67+
68+
1. **PR Size:**
69+
- Keep PRs focused and manageable (ideally under 500 lines)
70+
- Split large changes into multiple PRs
71+
- Each PR should address one specific feature or fix
72+
73+
2. **PR Content:**
74+
- Use clear, descriptive commit messages
75+
- Include tests for new features
76+
- Update documentation as needed
77+
- Add comments for complex logic
78+
- Ensure all tests pass
79+
80+
3. **PR Process:**
81+
- Create a draft PR for work in progress
82+
- Request review when ready
83+
- Address review comments promptly
84+
- Keep the PR up to date with the main branch
85+
86+
### Issue Guidelines
87+
88+
1. **Bug Reports:**
89+
- Use the "Bug Report" template
90+
- Include steps to reproduce
91+
- Provide environment details
92+
- Share error messages and logs
93+
94+
2. **Enhancement Requests:**
95+
- Use the "Enhancement" template
96+
- Explain the problem you're trying to solve
97+
- Describe your proposed solution
98+
- Include use cases and benefits
99+
100+
## Code Style
101+
102+
- You can run the format command with `make format` in the Makefile.
103+
- The formatting rules are defined in `pyproject.toml`
104+
- Follow PEP 8 guidelines
105+
- Write docstrings for all public functions and classes
106+
- Keep functions focused and single-purpose
107+
- Use meaningful variable and function names
108+
109+
## Documentation
110+
111+
- Update relevant documentation for any changes
112+
- Include docstrings for new functions and classes
113+
- Update examples if applicable
114+
- Keep the README.md up to date
115+
116+
## Release Process
117+
118+
- IBind is distributed through Pypi.
119+
- Semantic Versioning 2.0.0 is used.
120+
- Minor changes are published directly as new releases. Otherwise one or many release candidate versions are published (eg. `rc1`, `rc2`, etc.) and made available for a period of time in order to test the new functionalities.
121+
122+
## Questions?
123+
124+
If you have any questions about contributing, feel free to:
125+
126+
1. Open an issue
127+
2. Join discussions in existing issues
128+
3. Contact the maintainers
129+
130+
Thank you for contributing to IBind!

0 commit comments

Comments
 (0)