Skip to content

Commit 9c69d45

Browse files
docs: add CONTRIBUTING.md for community onboarding
Co-Authored-By: Paperclip <noreply@paperclip.ing>
1 parent 7283a08 commit 9c69d45

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

CONTRIBUTING.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Contributing to structkit
2+
3+
Thank you for your interest in contributing! structkit is a YAML-first project scaffolding tool for platform engineering teams, and community contributions are what make it better.
4+
5+
## Ways to Contribute
6+
7+
- **Report bugs**[open a bug report](.github/ISSUE_TEMPLATE/bug_report.md)
8+
- **Request features**[open a feature request](.github/ISSUE_TEMPLATE/feature_request.md)
9+
- **Share your templates** — post in [GitHub Discussions](https://github.com/httpdss/structkit/discussions)
10+
- **Fix bugs or implement features** — see the workflow below
11+
- **Improve docs** — typos, examples, tutorials all welcome
12+
13+
## Development Setup
14+
15+
```bash
16+
# Clone the repo
17+
git clone https://github.com/httpdss/structkit.git
18+
cd structkit
19+
20+
# Create a virtual environment
21+
python -m venv .venv
22+
source .venv/bin/activate # or .venv\Scripts\activate on Windows
23+
24+
# Install in editable mode with dev dependencies
25+
pip install -e ".[dev]"
26+
27+
# Install pre-commit hooks
28+
pre-commit install
29+
```
30+
31+
## Running Tests
32+
33+
```bash
34+
pytest
35+
```
36+
37+
To run a specific test file:
38+
39+
```bash
40+
pytest tests/test_generate.py -v
41+
```
42+
43+
## Submitting a Pull Request
44+
45+
1. **Fork** the repo and create a branch from `main`
46+
2. **Make your changes** — keep PRs focused; one feature or fix per PR
47+
3. **Add tests** — new behavior should have test coverage
48+
4. **Run pre-commit**`pre-commit run --all-files`
49+
5. **Open a PR** — describe what you changed and why
50+
51+
PR title format: `type: short description` (e.g. `feat: add remote template caching`, `fix: handle empty YAML files`)
52+
53+
## Template Contributions
54+
55+
Have a useful structkit template? The best place to share it is [GitHub Discussions → Show your structkit templates](https://github.com/httpdss/structkit/discussions). If it's broadly useful, we may feature it in the docs.
56+
57+
## Code Style
58+
59+
- Python 3.9+
60+
- Black formatting (enforced by pre-commit)
61+
- Type hints encouraged for new code
62+
- Docstrings for public functions
63+
64+
## Questions?
65+
66+
Open a [GitHub Discussion](https://github.com/httpdss/structkit/discussions) — we're happy to help.

0 commit comments

Comments
 (0)