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
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+40-30Lines changed: 40 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,13 @@ We welcome contributions from the community to help make this SDK robust, featur
6
6
7
7
## How to Contribute
8
8
9
-
-**Pull Requests (PRs)** for bug fixes, features, and documentation updates.
10
-
-**Bug Reports** for issues you encounter.
9
+
1. Search existing issues/PRs to avoid duplicates.
10
+
2. For opening an issue, use labels `bug`, `feature`, `docs`, or `question`.
11
+
3. Fork the repo and create a feature branch:
12
+
```bash
13
+
git checkout -b feature/your-feature-name
14
+
```
15
+
4. Implement, test, then submit a PR referencing the issue.
11
16
12
17
## ✨ Write High-Quality Code
13
18
@@ -19,12 +24,17 @@ We strive for high-quality, maintainable code. Please adhere to the following pr
19
24
- Design clear, minimal, and predictable interfaces for functions and classes.
20
25
- Use descriptive names for variables, functions, and classes.
21
26
- Keep code focused and avoid unnecessary complexity.
27
+
- Use [Google-style](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings) docstrings.
22
28
23
-
2.**Formatting, Linting & Type-Checking:**
29
+
2.**Use dependencies sparingly:**
30
+
31
+
- Every dependency added is a potential security risk.
32
+
- If the dependency is required, it should live in under `[project.optional-dependencies]` with a key marking the high level function, e.g. `rag`, `consensus`.
33
+
34
+
3.**Formatting, Linting & Type-Checking:**
24
35
25
36
- Use [ruff](https://docs.astral.sh/ruff/) for formatting and linting, both settings are defined in `pyproject.toml`.
26
-
- Use [pyright](https://github.com/microsoft/pyright) for type checking, all new code MUST include accurate type hints.
27
-
- Avoid using `typing.Any` unless absolutely necessary and clearly justified in comments.
37
+
- Use [pyright](https://github.com/microsoft/pyright) for type checking, all new code MUST include accurate type hints. Avoid using `typing.Any` unless absolutely necessary and clearly justified in comments.
28
38
- You can also install [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) into VSCode for an easier experience.
29
39
- Ensure your code passes all checks locally without errors:
30
40
```bash
@@ -33,37 +43,37 @@ We strive for high-quality, maintainable code. Please adhere to the following pr
33
43
uv run pyright
34
44
```
35
45
36
-
3. **Use dependencies sparingly:**
37
-
- Every dependency added is a potential security risk.
38
-
- If the dependency is required, it should live in under `[project.optional-dependencies]` with a key marking the high level function, e.g. `rag`, `consensus`.
39
-
40
-
## 🧪 Test Extensively
46
+
4. **Test Extensively:**
41
47
42
-
- New features **must** include appropriate unit and/or integration tests using `pytest`.
43
-
- Bug fixes **should** include tests demonstrating the fix.
44
-
- **All tests must pass** locally before submitting a pull request. Run tests via:
48
+
- New features **must** include appropriate unit and/or integration tests using `pytest`.
49
+
- Bug fixes **should** include tests demonstrating the fix.
50
+
- **All tests must pass** locally before submitting a pull request. Run tests via:
51
+
```bash
52
+
uv run pytest tests/unit/your-test.py -v
53
+
uv run pytest tests/integration/your-test.py -v
54
+
```
45
55
46
-
```bash
47
-
# Run all tests (unit + integration, requires env vars for integration)
48
-
uv run pytest
49
-
```
56
+
5. **Use Conventional Commits:**
50
57
51
-
## 🚨 CI Checks Must Pass
58
+
- All commit messages **must** adhere to the **Conventional Commits** specification. This helps automate changelog generation and provides a clear commit history.
59
+
- Read the spec: [https://www.conventionalcommits.org/](https://www.conventionalcommits.org/)
- `feat(rag): add support for Neo4j AuraDB connection`
63
+
- `fix(ecosystem): correct decimal calculation in FTSO price feed`
64
+
- `docs(readme): update README with installation instructions`
65
+
- `test(rag): add unit tests for GraphDbSettingsModel`
66
+
- `chore(deps): update ruff version in pyproject.toml`
52
67
53
-
- We use Continuous Integration (CI) pipelines (e.g., GitHub Actions) to automatically run linters, type checkers, and tests.
54
-
- **Pull requests will only be considered for merging if all CI checks pass.** Ensure your code meets all quality gates before submitting.
68
+
## 🚨 PR Checklist
55
69
56
-
## ✅ Use Conventional Commits
70
+
Before you mark your PR as ready-to-review:
57
71
58
-
- All commit messages **MUST** adhere to the **Conventional Commits** specification. This helps automate changelog generation and provides a clear commit history.
59
-
- Please read the specification: [https://www.conventionalcommits.org/](https://www.conventionalcommits.org/)
0 commit comments