8000 doc: Update CONTRIBUTING.md · GeekyprogrammerEJ/adk-python@380b82e · GitHub
[go: up one dir, main page]

Skip to content

Commit 380b82e

Browse files
authored
doc: Update CONTRIBUTING.md
1 parent 41329f0 commit 380b82e

File tree

1 file changed

+57
-32
lines changed

1 file changed

+57
-32
lines changed

CONTRIBUTING.md

Lines changed: 57 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,23 @@
22

33
We'd love to accept your patches and contributions to this project.
44

5+
## Table of Contents
6+
7+
- [Before you begin](#before-you-begin)
8+
- [Sign our Contributor License Agreement](#sign-our-contributor-license-agreement)
9+
- [Review our community guidelines](#review-our-community-guidelines)
10+
- [Contribution workflow](#contribution-workflow)
11+
- [Finding Issues to Work On](#finding-issues-to-work-on)
12+
- [Requirement for PRs](#requirement-for-prs)
13+
- [Large or Complex Changes](#large-or-complex-changes)
14+
- [Testing Requirements](#testing-requirements)
15+
- [Unit Tests](#unit-tests)
16+
- [End-to-End (E2E) Tests](#manual-end-to-end-e2e-tests)
17+
- [Documentation](#documentation)
18+
- [Development Setup](#development-setup)
19+
- [Code reviews](#code-reviews)
20+
21+
522
## Before you begin
623

724
### Sign our Contributor License Agreement
@@ -23,36 +40,13 @@ sign a new one.
2340
This project follows
2441
[Google's Open Source Community Guidelines](https://opensource.google/conduct/).
2542

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
4244

43-
```shell
44-
uv pip install -e .[dev,test,extensions,eval]
45-
```
46-
4. **Run unit tests:**
45+
### Finding Issues to Work On
4746

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.
5249

53-
```shell
54-
uv run pyink --config pyproject.toml ./src
55-
```
5650

5751
### Requirement for PRs
5852

@@ -67,12 +61,12 @@ For substantial features or architectural revisions:
6761
- Open an Issue First: Outline your proposal, including design considerations and impact.
6862
- Gather Feedback: Discuss with maintainers and the community to ensure alignment and avoid duplicate work
6963

70-
## Testing Requirements
64+
### Testing Requirements
7165

7266
To maintain code quality and prevent regressions, all code changes must include comprehensive tests and verifiable end-to-end (E2E) evidence.
7367

7468

75-
### Unit Tests
69+
#### Unit Tests
7670

7771
- **Coverage:** Cover new features, edge cases, error conditions, and typical use cases.
7872
- **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
8276
- Free of external dependencies (use mocks or fixtures as needed).
8377
- **Quality:** Aim for high readability and maintainability; include docstrings or comments for complex scenarios.
8478

85-
### End-to-End (E2E) Tests
79+
#### Manual End-to-End (E2E) Tests
8680

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.
8882

8983
Depending on your change:
9084

@@ -99,10 +93,41 @@ Depending on your change:
9993
- Include the command used and console output showing test results.
10094
- Highlight sections of the log that directly relate to your change.
10195

102-
## Documentation
96+
### Documentation
10397

10498
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.
10599

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+
106131
## Code reviews
107132

108133
All submissions, including submissions by project members, require review. We

0 commit comments

Comments
 (0)
0