How to Contribute
Thank you for your interest in contributing to the ADK Developer Training Course! We welcome improvements, corrections, and new content from the community.
Getting Started​
Before you contribute, please take a moment to review our Code of Conduct. We expect all contributors to adhere to it to ensure a positive and collaborative environment.
Branching Strategy & Workflow​
This repository uses a specific two-branch system to ensure a spoil-free experience for students while maintaining a complete reference for instructors and contributors.
The Branches​
-
solution(The "Source of Truth"): 🌟 ALWAYS WORK HERE.- This is the primary branch where all development happens.
- It contains the full course material, including labs, solutions (
lab-solution.md), and instructor guides. - The documentation website is built from this branch.
- Contributors: Always target your Pull Requests to the
solutionbranch.
-
main(Student Branch):- This is a sanitized version of the
solutionbranch intended for students to clone. - It does NOT contain solution files (
lab-solution.md). - Do not commit directly to
main. It is automatically synchronized fromsolution.
- This is a sanitized version of the
How to Contribute​
- Find an Issue: Check the GitHub Issues.
- Fork the Repository: Fork the repo to your account.
- Create a Feature Branch: Create a new branch starting from
solution:git checkout -b my-feature-branch origin/solution - Make Changes: Edit files as needed. If you are adding a new lab, remember to include the solution file (
lab-solution.md) if applicable. - Submit a Pull Request: Open a PR targeting the
solutionbranch.
For Maintainers: Publishing to Students​
To update the main (student) branch with the latest changes from solution, do not merge manually. Instead, use the provided automation script.
- Ensure you are on the
solutionbranch and your local state is up to date. - Run the publishing script from the root of the repository:
./scripts/publish_to_students.sh
What the script does:
- Switches to
mainand pulls the latest changes. - Merges
solutionintomain. - Forcefully removes all
lab-solution.mdfiles to prevent leakage. - Pushes the updated
mainbranch to GitHub. - Returns you to the
solutionbranch.
Code of Conduct​
This project and everyone participating in it is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior.
Licensing​
By contributing, you agree that your contributions will be licensed under the terms of the Apache License 2.0 for code and the Creative Commons Attribution 4.0 International License for documentation, as described in our LICENSE files.