You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We welcome contributions that used AI tools, provided they meet our quality, testing, security and licensing expectations. AI-generated code is treated the same as human-written code — it must be reviewed, tested, and owned by the contributor.
5
+
6
+
## Disclosure
7
+
If you used AI to produce any part of your contribution, include the following in your PR description:
8
+
-**Model/Agent** (e.g., "GPT-5 Thinking mini via Copilot")
9
+
-**How AI was used** (e.g., "boilerplate, implementation draft, tests, docs")
10
+
-**Manual validation** performed (linters, tests, security checks)
11
+
12
+
Simple autocompletion does not require disclosure. Substantial generation (functions, algorithms, large refactors, tests, docs) requires disclosure.
13
+
14
+
## Contributor responsibilities
15
+
- You remain fully responsible for the code you submit. Understand, test, and be able to explain all changes.
16
+
- All code (AI or human) must pass linters and tests and meet project coding standards.
17
+
- Provide documentation and tests for non-trivial changes.
18
+
19
+
## IP, licensing, and security
20
+
- By contributing you confirm you have the right to contribute the content (including AI outputs) under this project's license.
21
+
- Do not submit content that includes proprietary, copyrighted, or secret data.
22
+
- Avoid insecure patterns and secrets in contributions.
23
+
24
+
## Workflow rules
25
+
- For **core**, API, or architectural changes open an **Issue** first and discuss; link the Issue from the PR.
26
+
- Small bug fixes and docs may open PRs directly, but still follow disclosure and testing requirements.
27
+
28
+
## Maintainer rights
29
+
Maintainers may reject or modify PRs that diverge from project goals, introduce undue complexity, or violate the above rules.
30
+
31
+
## Enforcement and updates
32
+
This policy may be updated as the ecosystem evolves. If maintainers suspect problematic AI-generated content they may request provenance, tests, or rework.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+218-7Lines changed: 218 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,14 +31,27 @@ Enhancement suggestions are tracked as [GitHub issues](https://github.com/Supera
31
31
32
32
We welcome pull requests! For major changes, please open an issue first to discuss what you would like to change.
33
33
34
+
### AI-generated contributions
35
+
36
+
See [AI-GENERATED-CODE-POLICY.md](AI-GENERATED-CODE-POLICY.md) for our rules about contributions that use AI tools. If you used AI, please disclose the model/agent and how it was used in your PR description.
37
+
34
38
## Development Setup
35
39
36
40
### Prerequisites
37
41
38
-
* Python 3.10 or higher
42
+
* Python 3.10 or higher (we support Python 3.10, 3.11, 3.12, and 3.13)
39
43
*[uv](https://github.com/astral-sh/uv) (recommended) or pip
40
44
* Git
41
45
46
+
### Supported Platforms
47
+
48
+
We test on:
49
+
* Linux (Ubuntu)
50
+
* macOS
51
+
* Windows (limited testing)
52
+
53
+
If you encounter platform-specific issues, please report them with your OS details.
54
+
42
55
### Quick Setup
43
56
44
57
1.**Fork and clone the repository**
@@ -64,6 +77,8 @@ source .venv/bin/activate # On Windows: .venv\Scripts\activate
64
77
pip install -e ".[dev,test,docs]"
65
78
```
66
79
80
+
**Note:** The `-e` flag installs the package in "editable" or "development" mode. This means changes to the source code are immediately reflected without reinstalling. The `dspy-code` command will use your local development version.
81
+
67
82
3.**Install pre-commit hooks**
68
83
69
84
```bash
@@ -112,6 +127,16 @@ ruff check --fix .
112
127
ruff format .
113
128
```
114
129
130
+
### 4a. Type Checking (Optional but Recommended)
131
+
132
+
We use [mypy](https://mypy.readthedocs.io/) for static type checking:
133
+
134
+
```bash
135
+
mypy dspy_code
136
+
```
137
+
138
+
Note: Some third-party libraries (dspy, mcp, etc.) may not have complete type stubs, so some `ignore_missing_imports` exceptions are configured in `pyproject.toml`.
139
+
115
140
### 5. Commit
116
141
117
142
Use [Conventional Commits](https://www.conventionalcommits.org/):
0 commit comments