- 
                Notifications
    You must be signed in to change notification settings 
- Fork 388
feat: Feature matrix #793
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Feature matrix #793
Conversation
Introduces a GitHub Actions workflow that checks out two repositories, sets up Go, installs dependencies, runs a Go program, and creates a pull request with generated documentation updates.
Renamed the workflow to 'Feature Matrix Creator' and changed the trigger from push on main to manual workflow_dispatch.
Introduces a new tool under tools/feature-matrix to generate a feature support matrix for ADK runtimes by analyzing documentation. Includes Go implementation (main.go), prompt and starter markdown files, and Go module dependencies.
Removes checkout of the adk-docs-features repo and updates steps to use the local tools/feature-matrix directory for dependency installation and program execution. Simplifies the workflow by eliminating unnecessary repository cloning and file movement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this PR! The implementation and initial output LGTM. I left a few minor (non-blocking) comments. I do want to refer to @joefernandez for final review of the tooling and output.
        
          
                tools/feature-matrix/prompt.md
              
                Outdated
          
        
      | Please always preface the content with this markdown content after ADK Features header and becfore first paragraph: | ||
|  | ||
| !!! note: | ||
| This content is autogenerated by Gemini, based on our documentation. It is a best effort to generate a feature matrix, but may not be 100% accurate as features can outpace documentation, or Gemini might inaccurately generate content. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed the final output MD does not include this note.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to have disclaimer and the generator needs to guarantee that it appears on the page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR does not include a starting output. Everytime I have run the generator, it does show up. I'll do a little more testing though
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested. It's working.
        
          
                tools/feature-matrix/prompt.md
              
                Outdated
          
        
      |  | ||
| Please double check the matrix's markdown content for validity before outputting. | ||
|  | ||
| Please say "Planned" instead of "No" when a feature is not supported, unless there is text in the documentation that makes it clear that a particular feature will not be supported in a given language, in which case, then write "no". If you mark something as know please include a link to the text that makes you make that determination. Nearest header is close enough. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should implicitly assume that unsupported == planned since it might not be on the roadmap for a given language. But I understand the distinction you are trying to make between explicitly unsupported vs. implicitly unsupported. Suggest changing "Planned" to "Unsupported", which is distinct from the "No" category.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree we should not say "planned", but "unsupported"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will change
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implemented
        
          
                tools/feature-matrix/start.md
              
                Outdated
          
        
      | * **Deployment**: Deploy your agents to a variety of environments, including serverless (Cloud Run), Kubernetes (GKE), and the fully managed Vertex AI Agent Engine. | ||
| * **Agent2Agent (A2A) Protocol**: Build distributed, multi-agent systems where agents running as separate services can communicate and collaborate using the open A2A standard. | ||
|  | ||
| ## Feature Support Matrix | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest having the matrix appear above the (lengthy) descriptions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good suggestion
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implemented
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved with comments.
Revised the prompt to use 'Unsupported' instead of 'Planned' for features not supported, clarified disclaimer placement, and updated instructions for matrix ordering. Updated start.md to move the disclaimer and feature matrix to the top, reflect new terminology, and provide a more accurate and current feature support matrix.
This pull request introduces a new automated workflow and supporting code to generate a feature matrix for the ADK project documentation using Gemini AI. The workflow is designed to analyze the ADK documentation, extract supported features for each runtime, and create a pull request with an updated feature matrix in markdown format. The main changes include adding a GitHub Actions workflow, implementing a Go program to process documentation and interact with Gemini, and providing prompt and example files to guide the AI's output.
Automation and Workflow:
.github/workflows/feature-matrix-updater.yaml) that checks out the repository, sets up Go, runs a documentation analysis tool, and automatically creates a pull request with the generated feature matrix documentation.Feature Matrix Generation Tool:
tools/feature-matrix/main.go) that:tools/feature-matrix/go.mod) specifying dependencies for Gemini AI, logging, and other utilities.Prompt and Example Content:
tools/feature-matrix/prompt.md) instructing Gemini on how to analyze the documentation and format the feature matrix, including guidelines for language support and markdown output.tools/feature-matrix/start.md) to provide Gemini with a reference for the expected style and content of the feature matrix.