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
@@ -35,38 +34,38 @@ was for a different project), you probably don't need to do it again.
35
34
Visit <https://cla.developers.google.com/> to see your current agreements or to
36
35
sign a new one.
37
36
38
-
###Review our community guidelines
37
+
## Review our community guidelines
39
38
40
39
This project follows
41
40
[Google's Open Source Community Guidelines](https://opensource.google/conduct/).
42
41
43
-
##Contribution workflow
42
+
# Contribution workflow
44
43
45
-
###Finding Issues to Work On
44
+
## Finding Issues to Work On
46
45
47
46
- Browse issues labeled **`good first issue`** (newcomer-friendly) or **`help wanted`** (general contributions).
48
47
- For other issues, please kindly ask before contributing to avoid duplication.
49
48
50
49
51
-
###Requirement for PRs
50
+
## Requirement for PRs
52
51
53
52
- All PRs, other than small documentation or typo fixes, should have a Issue assoicated. If not, please create one.
54
53
- Small, focused PRs. Keep changes minimal—one concern per PR.
55
54
- For bug fixes or features, please provide logs or screenshot after the fix is applied to help reviewers better understand the fix.
56
55
- Please include a `testing plan` section in your PR to talk about how you will test. This will save time for PR review. See `Testing Requirements` section for more details.
57
56
58
-
###Large or Complex Changes
57
+
## Large or Complex Changes
59
58
For substantial features or architectural revisions:
60
59
61
60
- Open an Issue First: Outline your proposal, including design considerations and impact.
62
61
- Gather Feedback: Discuss with maintainers and the community to ensure alignment and avoid duplicate work
63
62
64
-
###Testing Requirements
63
+
## Testing Requirements
65
64
66
65
To maintain code quality and prevent regressions, all code changes must include comprehensive tests and verifiable end-to-end (E2E) evidence.
67
66
68
67
69
-
####Unit Tests
68
+
### Unit Tests
70
69
71
70
Please add or update unit tests for your change. Please include a summary of passed `pytest` results.
72
71
@@ -80,7 +79,7 @@ Requirements for unit tests:
80
79
- Free of external dependencies (use mocks or fixtures as needed).
81
80
-**Quality:** Aim for high readability and maintainability; include docstrings or comments for complex scenarios.
82
81
83
-
####Manual End-to-End (E2E) Tests
82
+
### Manual End-to-End (E2E) Tests
84
83
85
84
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.
86
85
@@ -97,23 +96,34 @@ Depending on your change:
97
96
- Include the command used and console output showing test results.
98
97
- Highlight sections of the log that directly relate to your change.
99
98
100
-
###Documentation
99
+
## Documentation
101
100
102
101
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.
103
102
104
-
###Development Setup
103
+
## Development Setup
105
104
1.**Clone the repository:**
106
105
107
106
```shell
108
-
git clone git@github.com:google/adk-python.git
107
+
gh repo clone google/adk-python
109
108
cd adk-python
110
109
```
111
-
2. **Create and activate a virtual environment:**
110
+
111
+
2. **Install uv:**
112
+
113
+
Check out [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/).
114
+
115
+
3. **Create and activate a virtual environment:**
116
+
117
+
**NOTE**: ADK supports Python 3.9+. Python 3.11 and above is strongly recommended.
118
+
119
+
Create a workspace venv using uv.
112
120
113
121
```shell
114
-
python -m venv .venv
122
+
uv venv --python "python3.11"".venv"
115
123
```
116
124
125
+
Activate the workspace venv.
126
+
117
127
```shell
118
128
source .venv/bin/activate
119
129
```
123
133
source .\.venv\Scripts\activate
124
134
```
125
135
126
-
3. **Install dependencies:**
136
+
4. **Install dependencies:**
127
137
128
138
```shell
129
-
pip install uv
130
139
uv sync --all-extras
131
140
```
132
-
4. **Run unit tests:**
141
+
142
+
**NOTE**: for convenience, installing all extra deps as a starting point.
143
+
144
+
5. **Run unit tests:**
133
145
134
146
```shell
135
-
uv run pytest ./tests/unittests
147
+
pytest ./tests/unittests
136
148
```
137
-
5. **Run pyink to format codebase:**
149
+
150
+
NOTE: for accurately repro test failure, only include `test` and `eval` as
151
+
extra dependencies.
138
152
139
153
```shell
140
-
uv run pyink --config pyproject.toml ./src
154
+
uv sync --extra test --extra eval
155
+
pytest ./tests/unittests
141
156
```
142
157
143
-
6. **Build the package**
158
+
6. **Auto-format the code:**
159
+
160
+
**NOTE**: We use `isort` and `pyink`for styles. Use the included
161
+
autoformat.sh to auto-format.
162
+
163
+
```shell
164
+
./autoformat.sh
165
+
```
166
+
167
+
7. **Build the wheel file:**
168
+
144
169
```shell
145
170
uv build
146
171
```
147
172
148
-
7. **Local Testing**
149
-
Have a simple testing folder setup as mentioned in the [quickstart](https://google.github.io/adk-docs/get-started/quickstart/)
150
-
then install the local package with changes after building it using the below command to test the changes.
173
+
8. **Test the locally built wheel file:**
174
+
Have a simple testing folder setup as mentioned in the
0 commit comments