Skip to content

Commit 1f36a2a

Browse files
committed
update readme and contributing guide
1 parent 18237af commit 1f36a2a

File tree

2 files changed

+389
-16
lines changed

2 files changed

+389
-16
lines changed

CONTRIBUTING.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# Contributing to ExSeq-Toolbox
2+
3+
Thank you for your interest in contributing to ExSeq-Toolbox! We welcome contributions from researchers, developers, and the broader scientific community. This document provides guidelines to help you get started.
4+
5+
## How to Contribute
6+
7+
### 🐛 Reporting Bugs
8+
9+
If you find a bug, please:
10+
11+
1. **Check existing issues** - Search the [GitHub Issues](https://github.com/RuihanZhang2015/ExSeq-Toolbox/issues) to see if the bug has already been reported
12+
2. **Create a new issue** with:
13+
- A clear, descriptive title
14+
- Steps to reproduce the bug
15+
- Expected vs. actual behavior
16+
- Your system information (OS, Python version, etc.)
17+
- Any error messages or logs
18+
19+
### 💡 Suggesting Features
20+
21+
We welcome feature suggestions! Please:
22+
23+
1. **Search existing issues** to avoid duplicates
24+
2. **Create a feature request** with:
25+
- A clear description of the feature
26+
- Use cases and benefits
27+
- Any relevant research context
28+
- Implementation ideas (if you have them)
29+
30+
### 🔧 Code Contributions
31+
32+
#### Getting Started
33+
34+
1. **Fork the repository** on GitHub
35+
2. **Clone your fork** locally:
36+
```bash
37+
git clone https://github.com/your-username/ExSeq-Toolbox.git
38+
cd ExSeq-Toolbox
39+
```
40+
3. **Create a virtual environment**:
41+
```bash
42+
python -m venv venv
43+
source venv/bin/activate # On Windows: venv\Scripts\activate
44+
```
45+
4. **Install dependencies**:
46+
```bash
47+
pip install -r requirements.txt
48+
pip install -r requirements_gpu.txt # If using GPU features
49+
```
50+
5. **Install in development mode**:
51+
```bash
52+
pip install -e .
53+
```
54+
55+
#### Development Workflow
56+
57+
1. **Create a new branch** for your changes:
58+
```bash
59+
git checkout -b feature/your-feature-name
60+
# or
61+
git checkout -b fix/your-bug-fix
62+
```
63+
64+
2. **Make your changes** following our coding standards
65+
66+
3. **Test your changes**:
67+
```bash
68+
# Run existing tests
69+
pytest tests/
70+
71+
# Run with coverage
72+
pytest --cov=exm tests/
73+
```
74+
75+
4. **Update documentation** if needed
76+
77+
5. **Commit your changes** with clear commit messages:
78+
```bash
79+
git commit -m "Add feature: brief description of changes"
80+
```
81+
82+
6. **Push to your fork**:
83+
```bash
84+
git push origin feature/your-feature-name
85+
```
86+
87+
7. **Create a Pull Request** with:
88+
- A clear title and description
89+
- Reference to any related issues
90+
- Summary of changes
91+
- Any new dependencies or requirements
92+
93+
## Coding Standards
94+
95+
### Python Code Style
96+
97+
- Follow **PEP 8** style guidelines
98+
- Use **type hints** for function parameters and return values
99+
- Write **docstrings** for all public functions and classes
100+
- Keep functions focused and **under 50 lines** when possible
101+
- Use **descriptive variable names**
102+
103+
### Documentation
104+
105+
- **Update docstrings** for any modified functions
106+
- **Add examples** in docstrings for complex functions
107+
- **Update README.md** if adding new features
108+
- **Update API documentation** if changing public interfaces
109+
110+
### Testing
111+
112+
- **Write tests** for new functionality
113+
- **Ensure existing tests pass** before submitting
114+
- **Add integration tests** for new modules
115+
- **Test edge cases** and error conditions
116+
117+
## Areas for Contribution
118+
119+
### High Priority
120+
121+
- **Bug fixes** and performance improvements
122+
- **Documentation improvements** and examples
123+
- **Test coverage** improvements
124+
- **GPU optimization** for existing functions
125+
126+
### Medium Priority
127+
128+
- **New analysis modules** for spatial transcriptomics
129+
- **Visualization tools** for ExSeq data
130+
- **Data format support** for additional microscopy platforms
131+
- **Workflow automation** and pipeline tools
132+
133+
### Low Priority
134+
135+
- **UI improvements** for existing tools
136+
- **Additional file format support**
137+
- **Performance optimizations** for specific use cases
138+
139+
## Review Process
140+
141+
1. **Automated checks** will run on your PR (tests, linting, etc.)
142+
2. **Maintainers will review** your code and provide feedback
143+
3. **Address any feedback** and update your PR
144+
4. **Once approved**, your PR will be merged
145+
146+
## Getting Help
147+
148+
- **GitHub Issues**: For bug reports and feature requests
149+
- **GitHub Discussions**: For questions and general discussion
150+
- **Documentation**: Check our [docs](https://exseq-toolbox.readthedocs.io/en/latest/)
151+
152+
## Code of Conduct
153+
154+
We are committed to providing a welcoming and inclusive environment for all contributors. Please:
155+
156+
- **Be respectful** and constructive in all interactions
157+
- **Help newcomers** learn and contribute
158+
- **Give credit** to others for their contributions
159+
- **Focus on the science** and technical merit
160+
161+
## Recognition
162+
163+
Contributors will be recognized in:
164+
- **GitHub contributors list**
165+
- **Release notes** for significant contributions
166+
- **Documentation** where appropriate
167+
168+
---
169+
170+
Thank you for contributing to ExSeq-Toolbox!

0 commit comments

Comments
 (0)