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
[Google's Open Source Community Guidelines](https://opensource.google/conduct/).
25
42
26
-
## Contribution process
27
-
1.**Clone the repository:**
28
-
29
-
```shell
30
-
git clone git@github.com:google/adk-python.git
31
-
cd adk-python
32
-
```
33
-
2. **Create and activate a virtual environment:**
34
-
35
-
```shell
36
-
python -m venv .venv
37
-
source .venv/bin/activate
38
-
pip install uv
39
-
```
40
-
41
-
3. **Install dependencies:**
43
+
## Contribution workflow
42
44
43
-
```shell
44
-
uv pip install -e .[dev,test,extensions,eval]
45
-
```
46
-
4. **Run unit tests:**
45
+
### Finding Issues to Work On
47
46
48
-
```shell
49
-
uv run pytest ./tests/unittests
50
-
```
51
-
5. **Run pyink to format codebase:**
47
+
- Browse issues labeled **`good first issue`** (newcomer-friendly) or **`help wanted`** (general contributions).
48
+
- For other issues, please kindly ask before contributing to avoid duplication.
52
49
53
-
```shell
54
-
uv run pyink --config pyproject.toml ./src
55
-
```
56
50
57
51
### Requirement for PRs
58
52
@@ -67,12 +61,12 @@ For substantial features or architectural revisions:
67
61
- Open an Issue First: Outline your proposal, including design considerations and impact.
68
62
- Gather Feedback: Discuss with maintainers and the community to ensure alignment and avoid duplicate work
69
63
70
-
## Testing Requirements
64
+
###Testing Requirements
71
65
72
66
To maintain code quality and prevent regressions, all code changes must include comprehensive tests and verifiable end-to-end (E2E) evidence.
73
67
74
68
75
-
### Unit Tests
69
+
####Unit Tests
76
70
77
71
-**Coverage:** Cover new features, edge cases, error conditions, and typical use cases.
78
72
-**Location:** Add or update tests under `tests/unittests/`, following existing naming conventions (e.g., `test_<module>_<feature>.py`).
@@ -82,9 +76,9 @@ To maintain code quality and prevent regressions, all code changes must include
82
76
- Free of external dependencies (use mocks or fixtures as needed).
83
77
-**Quality:** Aim for high readability and maintainability; include docstrings or comments for complex scenarios.
84
78
85
-
### End-to-End (E2E) Tests
79
+
#### Manual End-to-End (E2E) Tests
86
80
87
-
E2E tests ensure integrated flows work as intended. Your tests should cover all scenarios. Sometimes, it's also good to ensure relevant functionality is not impacted.
81
+
Manual E2E tests ensure integrated flows work as intended. Your tests should cover all scenarios. Sometimes, it's also good to ensure relevant functionality is not impacted.
88
82
89
83
Depending on your change:
90
84
@@ -99,10 +93,41 @@ Depending on your change:
99
93
- Include the command used and console output showing test results.
100
94
- Highlight sections of the log that directly relate to your change.
101
95
102
-
## Documentation
96
+
###Documentation
103
97
104
98
For any changes that impact user-facing documentation (guides, API reference, tutorials), please open a PR in the [adk-docs](https://github.com/google/adk-docs) repository to update relevant part before or alongside your code PR.
105
99
100
+
### Development Setup
101
+
1.**Clone the repository:**
102
+
103
+
```shell
104
+
git clone git@github.com:google/adk-python.git
105
+
cd adk-python
106
+
```
107
+
2. **Create and activate a virtual environment:**
108
+
109
+
```shell
110
+
python -m venv .venv
111
+
source .venv/bin/activate
112
+
pip install uv
113
+
```
114
+
115
+
3. **Install dependencies:**
116
+
117
+
```shell
118
+
uv pip install -e .[dev,test,extensions,eval]
119
+
```
120
+
4. **Run unit tests:**
121
+
122
+
```shell
123
+
uv run pytest ./tests/unittests
124
+
```
125
+
5. **Run pyink to format codebase:**
126
+
127
+
```shell
128
+
uv run pyink --config pyproject.toml ./src
129
+
```
130
+
106
131
## Code reviews
107
132
108
133
All submissions, including submissions by project members, require review. We
0 commit comments