First of all, thank you for taking the time to contribute! 🎉
This guide will help you understand how to contribute to the ADK-TS project effectively. Whether you're reporting bugs, suggesting features, or contributing code, this document will provide you with the necessary steps and guidelines.
- Reporting Bugs
- Suggesting Enhancements/Features
- Understanding the Project
- Contributing to the Project
- License
- Security
The following is a set of guidelines for contributing to ADK-TS. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Before contributing, we encourage you to read our Code of Conduct.
This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before creating a new issue, check existing issues to see if the report exists. If it does, go through the discussion thread and leave a comment instead of opening a new one.
If you find a Closed issue that is the same as what you are experiencing, open a new issue and include a link to the original issue in the body of your new one.
If you cannot find an open or closed issue addressing the problem, open a new issue.
Be sure to include a clear title and description, the exact steps to reproduce the bug, the behavior you observed after following the steps, and the behavior you expected to see instead. If possible, include a link to a reproducible example or a code sample that demonstrates the issue.
We track Enhancements and Feature Requests as GitHub issues.
Before submitting an enhancement/feature request, see if the issue already exists. If it does, go through the conversation thread to see if there is additional information and contribute to the conversation instead of opening a new one.
If you find a Closed issue, go through the conversation thread to see if the feature has already been implemented or rejected. If not, you can open a new issue.
A good Feature Request should have a clear and descriptive title, provide a detailed description of the request, and include reasons why the enhancement would be helpful to the project and the community.
Before contributing to the project, you need to understand the project structure and how it works. This section guides you through the project structure and how to run the project locally.
This project uses pnpm as its package manager. If you already have Node.js installed, this is how you can install pnpm globally:
npm i -g pnpmIf you do not have Node.js installed, run the command:
npm install -g @pnpm/exe
ADK-TS uses a monorepo structure organized as follows:
apps/— Application projects and templatesdocs/— Documentation site (Fumadocs)examples/— Comprehensive usage examplesstarter-templates/— Official starter templates
packages/— Core libraries and toolsadk/— Main ADK-TS frameworkadk-cli/— CLI for scaffolding new projects (install globally and useadk)tsconfig/— Shared TypeScript configurations
If you want to do more than report an issue or suggest an enhancement, you can contribute to the project by:
- cloning the repository (repo)
- making your changes
- opening a pull request
Note: If you want to contribute to the core ADK-TS framework, please read about the Framework Architecture first.
Click the fork button at the top right of the project home page to create a copy of this repo in your account, or go to the ADK-TS fork page.
After successfully forking the repo, you will be directed to your repo copy.
On your forked repo, click the green button that says Code. It will open a dropdown menu. Copy the link in the input with the label HTTPS or GitHub CLI depending on your preferred cloning mode.
For HTTPS, open up your terminal and run the following command:
git clone <your-clone-link>
# or
git clone https://github.com/<your-username>/adk-ts.gitReplace <your-username> with your GitHub username.
You can also clone the repo using the GitHub CLI. To do this, run the following command:
gh repo clone <your-username>/adk-tsTo set up the project, navigate into the project directory and open up the project in your preferred code editor.
cd adk-ts
code . # Opens up the project in VSCodeInstall the dependencies using pnpm. You need to have pnpm installed; see the prerequisite section.
pnpm install
Create a new branch from the main branch. Your branch name should be descriptive of the changes you are making. E.g., docs/updating-the-readme-file. Some ideas to get you started:
- For Feature Updates:
feat/<brief 2-4 words-Description> - For Bug Fixes:
fix/<brief 2-4 words-Description> - For Documentation:
docs/<brief 2-4 words-Description>
To create a new branch, use the following command:
git checkout -b <your-branch-name>The monorepo contains several independent packages and apps. Each has its own README for detailed instructions, but here is a quick overview:
-
Core Package (
packages/adk/): Build and test the main ADK-TS framework.cd packages/adk pnpm build pnpm test
-
Documentation Site (
apps/docs/): Run the docs locally.cd apps/docs pnpm dev -
Examples (
apps/examples/): Explore and run example agents and flows.pnpm build cd apps/examples pnpm dev
Refer to each package or app's own README for more details and available scripts.
You are to make only one contribution per pull request. It makes it easier to review and merge. If you have multiple bug fixes or features, create separate pull requests for each.
Your commit message should give a concise idea of the issue you are solving. It should follow the conventional commits specification, as this helps us generate the project changelog automatically. A traditional structure of commit looks like so:
<type>(optional scope): <description>To commit your changes, run the following command:
git add .
git commit -m "<your_commit_message>"Eg:
git commit -m "feat: add support for custom tools"After committing your changes, push your local commits to your remote repository.
git push origin your-branch-name
Go to the ADK-TS repository and click the compare & pull request button or go to the Pull Request page and click on the New pull request button. It will take you to the Open a pull request page.
Note: Make sure your PR points to the
mainbranch, not any other one.
🎉 Congratulations! You've made your pull request! A maintainer will review and merge your code or request changes. If changes are requested, make them and push them to your branch. Your pull request will automatically track the changes on your branch and update.
This project is licensed under the MIT License - see the LICENSE.md file for details.
If you discover a security vulnerability within this project, please report it by following our Security Policy. We take security seriously and will respond promptly to any reports.