Skip to content

Conversation

@yesudeep
Copy link
Contributor

@yesudeep yesudeep commented Feb 3, 2026

Release: Genkit Python SDK v0.5.0

Overview

This is a major release of the Genkit Python SDK with 178 commits and 680 files changed over 8 months since v0.4.0 (May 2025). This release represents the most significant update to the Python SDK to date, adding extensive new model providers, telemetry integrations, core framework features, and substantial improvements to type safety and developer experience.

Impact Summary

Category Impact Migration Required
New Model Plugins 🟢 High - 7 new providers No (additive)
New Telemetry Plugins 🟢 High - 3 new providers No (additive)
Core Features 🟢 High - rerankers, Dotprompt, tool calling No (additive)
PluginV2 Refactor 🟡 Medium Yes - plugin authors
Async-First Architecture 🟡 Medium Yes - if using sync APIs
Type Safety 🟢 High No (stricter checks)
Security Enhancements 🟢 High No (automatic)
Python 3.14 Support 🟢 High No (additive)
Performance 🟢 High No (automatic)

What's New

New Model Provider Plugins (7)

Plugin Provider Key Features
genkit-plugin-anthropic Anthropic Claude models (Opus, Sonnet, Haiku)
genkit-plugin-aws-bedrock AWS Bedrock Claude, Titan, Llama via AWS
genkit-plugin-msfoundry Azure OpenAI Microsoft Foundry integration
genkit-plugin-cf-ai Cloudflare Workers AI models
genkit-plugin-deepseek DeepSeek DeepSeek models with structured output
genkit-plugin-xai xAI Grok models
genkit-plugin-mistral Mistral AI Large, Small, Codestral, Pixtral
genkit-plugin-huggingface Hugging Face 17+ inference providers

New Telemetry Plugins (3)

Plugin Provider Key Features
genkit-plugin-aws AWS X-Ray SigV4 signing, OTLP export
genkit-plugin-observability Third-party Sentry, Honeycomb, Datadog
genkit-plugin-google-cloud GCP Full parity with JS/Go SDKs

Core Framework Features

  • Agentive Tool Calling: Define tools with @ai.tool() decorator for AI agents
  • Rerankers: Initial reranker implementation for RAG pipelines
  • Background Models: Dynamic model discovery and background action support
  • Evaluator Metrics: ANSWER_RELEVANCY, FAITHFULNESS, MALICIOUSNESS
  • Output Formats: Array, enum, JSONL formats (JS SDK parity)
  • Pydantic Output: Return typed Pydantic instances from generation

Dotprompt Integration (via google/dotprompt)

  • Dotpromptz 0.1.5: Latest version with type-safe schema fields
  • Python 3.14 Support: PyO3/maturin ABI compatibility for Rust-based Handlebars engine
  • Directory/File Prompt Loading: Automatic prompt discovery matching JS SDK
  • Handlebars Partials: define_partial for template reuse
  • Render Methods: render_system_prompt and render_user_prompt
  • Callable Support: Prompts can be used directly as callables
  • Security: Cycle detection prevents infinite recursion, path traversal hardening (CWE-22)
  • Helper Parity: Consistent Handlebars helper behavior across all runtimes
  • Release Pipeline: Automated PyPI publishing, release time reduced from 30 min to 2 min

Breaking Changes

1. PluginV2 Refactor (#4132)

Impact: Plugin authors need to update their plugins.

Before:

class MyPlugin(Plugin):
    def __init__(self, config):
        self.config = config

After:

class MyPlugin(PluginV2):
    def __init__(self, config):
        super().__init__(config)
        # Use standardized registration pattern

2. Async-First Architecture (#4244)

Impact: Sync base classes removed. All operations are now async.

Before:

result = flow.run_sync(input)  # No longer available

After:

result = await flow.run(input)  # Use async/await
# Or use asyncio.run() at entry points

3. Embed API Refactor (#4269)

Impact: embed/embed_many API updated for JS parity.

Before:

# Old API signature

After:

# New API matches JS SDK patterns

Type Safety Improvements

This release integrates three type checkers for comprehensive coverage:

  • ty (Astral/Ruff): Fast, strict checking - 0 errors
  • pyrefly (Meta): Additional coverage - 0 errors
  • pyright (Microsoft): Industry standard - 0 errors

All packages now pass all three type checkers with zero errors.

Security Enhancements

  • Ruff Security Audit: All S-rules (Bandit) warnings addressed
  • SigV4 Signing: AWS X-Ray exporter uses proper AWS authentication
  • Path Traversal Hardening: CWE-22 vulnerability fix in Dotprompt
  • PySentry Integration: Continuous vulnerability scanning in CI
  • License Compliance: All configuration files have proper headers

Critical Fixes

Performance

  • Per-Event-Loop HTTP Client Caching: Reuses HTTP connections within event loops, prevents connection overhead
  • Dotprompt Release Pipeline: Reduced from 30 minutes to 2 minutes (15x faster)
  • CI Consolidation: Single workflow, every commit is release-worthy
  • ty Type Checker: Faster type checking than pyright alone

Developer Experience

  • Hot Reloading: Watchdog-based autoreloading for all samples
  • Sample Improvements: Consistent run scripts, browser auto-open, rich tracebacks
  • TODO Linting: Automated GitHub issue creation for TODOs
  • Release Automation: bin/release_check, bin/bump_version scripts
  • Consistency Checks: bin/check_consistency validates all packages

Migration Guide

For Application Developers

  1. Update imports if you were using internal APIs
  2. Use async/await for all Genkit operations
  3. Test with Python 3.10+ (3.14 now supported)

For Plugin Developers

  1. Migrate to PluginV2 base class
  2. Follow new registration pattern in plugin docs
  3. Run bin/lint to verify type safety

Testing

All 22 plugins and 40+ samples have been tested. CI runs on Python 3.10, 3.11, 3.12, 3.13, and 3.14.

Contributors

This release includes contributions from 13 developers across 188 PRs. Thank you to everyone who contributed!

Contributor PRs Commits Key Contributions
@yesudeep 91 93 Core: async-first architecture (#4244), Genkit class methods (#4274), embed/embed_many API refactor (#4269), centralized action latency (#4267), array/enum/jsonl output formats (#4230). Plugins: AWS Bedrock (#4389), AWS X-Ray with SigV4 (#4390, #4402), Azure OpenAI (#4383), Cloudflare Workers AI (#4405), Mistral AI (#4406), Hugging Face (#4406), GCP telemetry (#4281). Type Safety: ty integration (#4094), pyrefly (#4316), pyright (#4310), comprehensive fixes (#4249-4270). DevEx: hot reloading (#4268), per-event-loop HTTP caching (#4419, #4429), PySentry security (#4273), TODO linting (#4376), CI consolidation (#4410), session/chat API (#4278, #4275), background models (#4327), docs (#4322, #4393, #4430). Samples: 20+ sample fixes and improvements (#4283, #4373, #4375, #4427).
@MengqinShen (Elisa Shen) 42 42 Core: Resource support implementation (#4204). Samples: menu sample fixes (#4239, #4403), short-n-long (#4404), tool-interrupt (#4408), prompt sample (#4223, #4183), ollama-hello (#4133), genai-image (#4122, #4234), code-execution (#4134), anthropic sample (#4131). Models: Google GenAI model config (#4306), TTS/Veo model config (#4411), Gemini bug fixes (#4432), system prompt fields (#4391, #4418). Docs: README updates (#4323), multi-round flow logic (#4137).
@AbeJLazaro 11 8 Plugins: Model Garden resolve/list actions (#3040), Ollama resolve action (#2972), type coverage and tests (#3011). Fixes: Gemini complex schema support (#3049), Firestore plugin naming (#3085), evaluator plugin requirements (#3166), optional dependencies setup (#3012). Tests: Model Garden tests (#3083).
@pavelgj 10 7 Core: Reflection API multi-runtime support (#3970), health check fixes (#3969). Fixes: Embedders reflection (#3969), Gemini version upgrades to 2.5 (#3909).
@zarinn3pal 9 9 Plugins: Anthropic (#3919), DeepSeek (#4051, structured output fix #4374), xAI/Grok (#4001, config #4289), ModelGarden (#2568). Telemetry: GCP telemetry for Firebase observability (#3826, #4386). Samples: OpenAI Compat tools (#3684).
@huangjeff5 7 7 Core: PluginV2 refactor with new registration pattern (#4132), type safety improvements (#4310), Pydantic output instances (#4413), session/chat refactor (#4321). Telemetry: Real-time telemetry and trace ID formatting (#4285).
@hendrixmar 7 7 Evaluators: ANSWER_RELEVANCY, FAITHFULNESS, MALICIOUSNESS metrics (#3806), ModelReference support (#3949, #3951). Plugins: OpenAI compat list_actions (#3240), resolve_method (#3055). Dotprompt: render_system_prompt (#3503), render_user_prompt (#3705).
@ssbushi 6 2 Evaluators: Simple evaluators plugin (#2835). Docs: MkDocs API reference updates (#2852), genkit-tools model optional (#3918).
@shrutip90 1 1 Types: ResourcePartSchema exports via genkit-tools (#3239).
@schlich 1 1 Types: Type annotations for ai module.
@ktsmadhav 1 1 Fixes: Windows support with file-safe timestamp format (#3727).
@junhyukhan 1 1 Docs: Typo fixes.
@CorieW 1 1 Community contribution.

google/dotprompt Contributors (Dotprompt Python integration):

Contributor PRs Commits Key Contributions
@yesudeep 50+ 100+ Rust Engine: dotpromptz-handlebars with PyO3/maturin (#365), Python 3.14 ABI support, Rust Handlebars runtime. Features: Cycle detection in partial resolution, path traversal hardening (CWE-22), directory/file prompt loading (#3955, #3971), Handlebars partials (#4088), callable prompts (#4053). Build: Bazel rules_dart/rules_flutter, release pipeline 15x faster (30min→2min), maturin wheel builds. IDE: Monaco syntax highlighting, CodeMirror 6 integration, Storybook demos. Polyglot: Python, Go, Dart, Rust, TypeScript implementations.
@MengqinShen 42 45 CI/CD: GitHub Actions workflows for Python package publishing, automated release-please, dotpromptz PyPI releases (0.1.2-0.1.5), handlebarrz releases, wheel artifact management.
@Zereker 1 1 Go: Closure fix preventing template sharing between instances.

Full Changelog

See CHANGELOG.md for the complete list of changes.

@yesudeep yesudeep requested a review from huangjeff5 as a code owner February 3, 2026 19:35
@github-actions github-actions bot added docs Improvements or additions to documentation python Python config chore labels Feb 3, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @yesudeep, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request marks the release of version 0.5.0, bringing a substantial update to the project. It integrates a multitude of new model and telemetry plugins, introduces significant core framework features like session management and a direct action protocol, and vastly improves the developer experience with better tooling, type safety, and Python 3.14 support. The update also includes critical bug fixes and security enhancements, making it a comprehensive and impactful release.

Highlights

  • Version Bump: The project version has been updated from 0.4.0 to 0.5.0 across the core framework and all associated plugins, signifying a new release.
  • Extensive New Features: Version 0.5.0 introduces a wide array of new capabilities, including support for AWS Bedrock, Azure OpenAI, Cloudflare Workers AI, DeepSeek, xAI, and Anthropic models, as well as new telemetry plugins for AWS and AIM. Core framework enhancements include Direct Action Protocol (DAP), session management, background model support, and reranker functionality.
  • Developer Experience Improvements: Significant focus has been placed on developer experience, with full Python 3.14 compatibility, enhanced type safety, comprehensive release automation scripts, automated consistency checks, security scanning integration, hot reloading for samples, and TODO linting.
  • Architectural Refinements and Bug Fixes: The release includes a major PluginV2 refactor, a shift to an async-first architecture, and numerous fixes for issues such as race conditions, telemetry, Windows compatibility, structured output, image encoding, schema handling, and various type errors. Security has also been addressed with a Ruff audit and license compliance updates.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • py/CHANGELOG.md
    • Added a new entry for version 0.5.0, detailing extensive new features, changes, fixes, and security updates.
    • Updated the 'Unreleased' and version links to reflect the new 0.5.0 release.
  • py/packages/genkit/pyproject.toml
    • Bumped the project version from 0.4.0 to 0.5.0.
  • py/plugins/anthropic/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/aws-bedrock/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/aws/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/azure/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/cf-ai/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/cf/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/compat-oai/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/deepseek/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/dev-local-vectorstore/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/evaluators/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/firebase/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/flask/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/google-cloud/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/google-genai/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/huggingface/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/mcp/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/mistral/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/msfoundry/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/observability/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/ollama/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/vertex-ai/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
  • py/plugins/xai/pyproject.toml
    • Bumped the plugin version from 0.4.0 to 0.5.0.
Activity
  • No specific activity (comments, reviews, progress) has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly bumps the version of all Python packages to 0.5.0 and updates the CHANGELOG.md with a comprehensive list of changes for this new release. The version updates are consistent across all pyproject.toml files. I have one minor suggestion to improve the markdown formatting in the changelog. Otherwise, the changes are correct and ready for the release.

@yesudeep yesudeep force-pushed the yesudeep/chore/enchanted-bread branch from 9baca94 to 3c6ed12 Compare February 3, 2026 20:52
@yesudeep yesudeep requested a review from pavelgj February 3, 2026 20:54
…elease

This release includes 178 commits over 8 months since v0.4.0 (May 2025):

New Model Providers:
- Anthropic, AWS Bedrock, Azure OpenAI (msfoundry), Cloudflare Workers AI
- DeepSeek, xAI, Mistral AI, Hugging Face

New Telemetry:
- AWS X-Ray with SigV4, AIM/Firebase, GCP parity

Core Features:
- Dynamic Action Provider (DAP) for runtime action creation
- Session management with ai.chat() API
- Rerankers for RAG pipelines
- Background models and dynamic discovery
- Full MCP integration

Breaking Changes:
- PluginV2 refactor (migration required for plugin authors)
- Async-first architecture (sync base removed)

Developer Experience:
- Python 3.14 support
- Triple type checker enforcement (ty, pyrefly, pyright)
- Security scanning with PySentry
- Hot reloading for samples
…actoring)

- Added Dotprompt integration section with features from google/dotprompt:
  - Dotpromptz 0.1.5 with type-safe schema fields
  - Directory/file prompt loading matching JS SDK
  - Handlebars partials with define_partial
  - render_system_prompt and render_user_prompt methods
  - Callable support for prompts
  - Security: cycle detection, path traversal hardening (CWE-22)
  - Helper parity across all runtimes

- Removed session/chat references (undergoing refactor)
- Updated Impact Summary to highlight Dotprompt integration
Performance improvements:
- Per-event-loop HTTP client caching (thread safety)
- Dotprompt release pipeline: 30 min → 2 min (15x faster)
- ty type checker integration for faster checks

Critical fixes highlighted:
- Race condition in dev server startup
- Thread safety with per-event-loop HTTP client caching
- Infinite recursion prevention via cycle detection in partials
- Structured output generation for DeepSeek
- JSON Schema None type handling

Security:
- Path traversal hardening (CWE-22)
- SigV4 signing for AWS X-Ray
- Ruff security audit

Developer experience:
- Added link to Watchdog repository
- Python 3.14 PyO3/maturin ABI compatibility details
…tion

Genkit Python SDK Contributors (16 developers):
- Yesudeep Mangalapilly: Core framework, type safety, AWS/Azure/CF plugins
- Elisa Shen: Resource support, samples, model config
- Niraj Nepal: Anthropic, DeepSeek, xAI plugins, AIM telemetry
- Abraham J. Lázaro: Model Garden, Ollama, Gemini schema
- huangjeff5: PluginV2 refactor, type safety, Pydantic output
- Hendrik Martina: Evaluator metrics, OpenAI compat, Dotprompt render
- Pavel Jbanov: Reflection API, embedders, background actions
- And 9 more contributors

google/dotprompt Contributors:
- Zereker: Go closure fix
- MengqinShen: CI/CD pipeline improvements
Contributors now have clickable GitHub profile links.
Key contributions are exhaustive with detailed summaries.
Separate dotprompt contributor table added.
GEMINI.md updated with learnings about release PR drafting.
- Added specific PR numbers for each key contribution
- Categorized contributions by type (Core, Plugins, Type Safety, etc.)
- Made dotprompt table match genkit format with PRs and Commits columns
- Added polyglot implementations note for dotprompt work
- Matching table formats for external contributors
- --no-verify workflow for fast iteration
- gh pr edit command for updating PR descriptions
- 16-step checklist for drafting release PRs
- Key principles for exhaustive contributor tables
- Commands for gathering statistics from both repos
- Best practices for GitHub links, PR numbers, categorization
Firebase blog style article highlighting:
- 7 new model provider plugins
- 3 new telemetry plugins
- Async-first architecture
- Dynamic Action Provider (DAP)
- Enhanced Dotprompt integration
- Comprehensive type safety
- Critical fixes and security
- Developer experience improvements
- Contributors acknowledgment
- response.text (property) not response.text() (method)
- output=Output(schema=...) instead of output_schema
- ai.dynamic_tool() instead of action_provider
- ai.define_partial() correct usage
- ai.run_main() for proper lifecycle management
- Module-level Genkit initialization (best practice)
- Every release MUST include blog article in py/engdoc/
- Added Blog Article Guidelines with required sections
- Added Code Example Accuracy Checklist (response.text, Output, etc.)
- Added commands to verify examples against actual samples
- Updated release checklist to 18 steps
- Removed Firebase blog links from blog article tags
- Added branding note: use 'Genkit' not 'Firebase Genkit' (rebranded 2025)
- Updated Blog Article Guidelines with branding clarification
DAP and MCP are still in development, so using shipped features only
- Replaced DAP with standard tool calling feature
- Removed MCP resource management reference
- Updated contributor tables consistently
- Removed non-existent genkit-plugin-aim references
- Replaced with actual plugins: genkit-plugin-observability, genkit-plugin-firebase
- Added plugin name verification check to GEMINI.md
- Document common mistakes to avoid
- Added commands to extract and validate code snippets from blog articles
- Added Blog Article Code Review Checklist with 8 verification items
- Commands to check for common syntax errors (response.text(), output_schema, etc.)
- Verify import statements match actual module structure
- Check decorator patterns exist in codebase
@yesudeep
Copy link
Contributor Author

yesudeep commented Feb 4, 2026

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request bumps the Python SDK version to 0.5.0 and includes extensive updates to the release documentation, such as the CHANGELOG, a new PR description template, a blog post, and detailed internal guidelines for creating releases. The changes are well-structured and comprehensive. I've found a couple of minor inconsistencies in the new documentation regarding contributor credits and plugin names, which I've highlighted in the comments. Overall, this is a great step towards a more robust release process.

- Created bin/validate_release_docs script with 9 automated checks
- Checks: branding, plugin names, unshipped features, code syntax,
  plugin existence, contributor links, blog article, imports, sections
- Fixed genkit-plugin-firestore -> genkit-plugin-firebase
- Added step 16 to release checklist: run validation script
AIM plugin does not exist. Removed 'AIM for Firebase observability'
from zarinn3pal's contributions in CHANGELOG and blog article.
Niraj implemented GCP telemetry for Firebase observability.
The correct plugin name is genkit-plugin-google-cloud, not aim.
CRITICAL: The publish workflow was missing 13 plugins that couldn't be published!

Added:
- Model providers: anthropic, aws-bedrock, cf-ai, deepseek, huggingface, mistral, msfoundry, xai
- Telemetry: aws, azure, cf, observability
- Other: evaluators, mcp

Also fixed project_type default ('package' -> 'packages') to match options.
- Added publish_scope input: 'all' or 'single'
- When 'all': uses dynamic matrix to build/publish all 23 packages in parallel
- When 'single': publishes just the selected package (existing behavior)
- Each package now has its own artifact (dist-<name>) for parallel publishing
- Fixes artifact naming collision when building multiple packages
- Created py/engdoc/release-publishing-guide.md with full step-by-step guide
- Added Release Publishing Process section to GEMINI.md
- Documents tag creation, GitHub release, and PyPI publishing
- Includes v0.5.0 release summary with package counts
- Lists all 23 packages (9 existing, 14 new)
Usage: ./bin/create_release 0.5.0

The script:
1. Verifies package versions match
2. Ensures on main branch with no uncommitted changes
3. Creates annotated git tag (py/v<VERSION>)
4. Pushes tag to origin
5. Creates GitHub release using PR description file
The script now:
- Takes optional PR number: ./bin/create_release 0.5.0 4417
- Auto-finds merged PR if not specified
- Fetches PR body directly from GitHub using gh CLI
- No longer requires local .github/PR_DESCRIPTION_X.Y.Z.md file
- Created bin/check_versions script to verify all packages have same version
- Updated bin/bump_version to also update samples
- Added shellcheck to bin/lint (checks both bin/ and py/bin/)
- Added shellcheck to py/bin/release_check
- Fixed all shellcheck warnings in py/bin/ scripts
- Updated GEMINI.md with version consistency and shell linting docs

Scripts now dynamically discover all plugins and samples.
@yesudeep
Copy link
Contributor Author

yesudeep commented Feb 4, 2026

/gemini review

- Moved shebang to line 1 (was after license header)
- Quoted variable to prevent globbing
- Fixed py/bin/validate_release_docs: #!/bin/bash -> #!/usr/bin/env bash
- Added 'set -euo pipefail' to validate_release_docs
- Added Shell Script Standards section to GEMINI.md
- Documented shebang and strict mode requirements
- Exception noted for bin/install_cli (user-facing install script)
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request bumps the version to 0.5.0 and introduces a significant amount of release automation and documentation. The new scripts for checking versions, validating release docs, and creating releases are great additions that will improve the development workflow. The updates to the linting process to include shell script checks are also a welcome improvement for code quality. I have one suggestion to improve the consistency of the shell script checks.

Added two new jobs to publish_python.yml:

1. verify_publish:
   - Waits 60s for PyPI CDN propagation
   - Installs each package from PyPI with exact version
   - Verifies installed version matches expected
   - Runs smoke test imports

2. publish_summary:
   - Creates GitHub Actions summary with overall status
   - Shows publish and verification results
   - Provides next steps with PyPI links

This ensures packages are actually installable after release.
Instead of hardcoding all 22 plugins in the workflow, now we:
- Scan py/plugins/ directory at runtime
- Add each plugin with pyproject.toml to the matrix
- Log discovered plugins for debugging

Benefits:
- New plugins are automatically included in releases
- No workflow changes needed when adding plugins
- Reduces maintenance burden
mkdocs.yml:
- Added all 22 plugins to mkdocstrings paths for complete API docs
- Organized by category (model providers, telemetry, framework, etc.)

ROADMAP.org:
- Updated release management section (all items now complete)
- Added new API Documentation section with future work:
  - [ ] Docs publish workflow (GitHub Pages)
  - [ ] Version selector for multiple SDK versions
  - [ ] API reference pages for each plugin
- GenerateResponseWrapper -> genkit.blocks.model
- MessageWrapper -> genkit.blocks.model
- Core types -> genkit.core.typing

MkDocs now builds successfully.
- docs/index.md: Added all genkit.ai exports (18 items total)
  - Core classes: Genkit, GenkitRegistry, Plugin
  - Actions: ActionKind, ActionRunContext, FlowWrapper
  - Prompts: ExecutablePrompt, PromptGenerateOptions, etc.
  - Tools: ToolRunContext, tool_response
  - Response: GenerateResponseWrapper, GenerateStreamResponse

- docs/types.md: Added all genkit.types exports (40+ items)
  - Errors: GenkitError, ToolInterruptError
  - Parts: TextPart, MediaPart, CustomPart, DataPart, etc.
  - Generation: GenerateRequest/Response, config types
  - Embedding: EmbedRequest/Response
  - Evaluation: EvalRequest/Response, Score
  - Model info: ModelInfo, Supports, Constrained

- release_check: Check both py/bin/ and root bin/ for shellcheck
  (fixes review feedback for consistency with bin/lint)

MkDocs builds successfully in 3.01 seconds.
@yesudeep yesudeep merged commit b71a3d2 into main Feb 4, 2026
18 checks passed
@yesudeep yesudeep deleted the yesudeep/chore/enchanted-bread branch February 4, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore config docs Improvements or additions to documentation python Python

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants