Skip to content

ci(py/genkit): select plugins and core to publish and some minor fixes#4722

Merged
yesudeep merged 1 commit into
mainfrom
yesudeep/fix/releasekit-docs
Feb 17, 2026
Merged

ci(py/genkit): select plugins and core to publish and some minor fixes#4722
yesudeep merged 1 commit into
mainfrom
yesudeep/fix/releasekit-docs

Conversation

@yesudeep
Copy link
Copy Markdown
Contributor

@yesudeep yesudeep commented Feb 17, 2026

zsh❯ py/bin/releasekit plan --bumped --publishable
2026-02-17T22:16:17.010158Z [warning  ] non_conventional_commit        [releasekit.versioning] package=genkit sha=a15c4ec2 subject='elisa/fix/core framework improvements (#4649)'
   Level  Package                     Current  Next   Bump   Status    Reason                                                                                                        
─  ─────  ──────────────────────────  ───────  ─────  ─────  ────────  ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
📦  0      genkit                      0.5.0    0.6.0  minor  included  fix: Path fix for logging (#4642)                                                                             
📦  1      genkit-plugin-anthropic     0.5.0    0.6.0  minor  included  fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)                   
📦  1      genkit-plugin-compat-oai    0.5.0    0.6.0  minor  included  fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)                   
📦  1      genkit-plugin-evaluators    0.5.0    0.6.0  minor  included  feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)
📦  1      genkit-plugin-fastapi       0.5.0    0.6.0  minor  included  fix(py): address releasekit check warnings for metadata and grouping (#4595)                                  
📦  1      genkit-plugin-google-cloud  0.5.0    0.6.0  minor  included  fix: Fixed firebase telemetry , refactored telemetry implementation fixed failing tests (#4530)               
📦  1      genkit-plugin-google-genai  0.5.0    0.6.0  minor  included  fix(py): update google-genai evaluators and cleanup sample-test (#4648)                                       
📦  1      genkit-plugin-ollama        0.5.0    0.6.0  minor  included  fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)                   
📦  1      genkit-plugin-xai           0.5.0    0.6.0  minor  included  fix(conform,anthropic): native executors, tool schema handling, and CLI consolidation (#4698)                 
📦  2      genkit-plugin-deepseek      0.5.0    0.6.0  minor  included  fix(releasekit): replace literal null byte with git %x00 escape in changelog format (#4661)                   
📦  2      genkit-plugin-flask         0.5.0    0.6.0  minor  included  feat(releasekit): add Forge protocol extensions, transitive propagation, and multi-backend conformance (#4577)
📦  2      genkit-plugin-vertex-ai     0.5.0    0.6.0  minor  included  fix(py/vertex-ai): async client creation with threaded credential refresh (#4608)                             
Umbrella version: 0.6.0
Total: 12 packages (12 included)

@gemini-code-assist
Copy link
Copy Markdown
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 significantly refines the releasekit tool's release planning and execution capabilities. It introduces granular control over which packages are included in a release plan and how their versions are determined, particularly for umbrella releases. The changes enable users to filter release plans by various statuses and provide more precise logging control, improving the overall clarity and flexibility of the release process.

Highlights

  • Enhanced Release Plan Filtering: Introduced a new PlanStatus.PUBLISH_EXCLUDED to distinguish packages that are bumped but not published, and added BUMPED_STATUSES and PUBLISHABLE_STATUSES sets for clearer filtering of release plan entries. The plan CLI command now supports --status, --bumped, and --publishable options to filter packages by their release status.
  • Improved Umbrella Version Resolution: Refactored umbrella version resolution into a dedicated resolve_umbrella_version function, which prioritizes a specified core package, ensuring more accurate and consistent versioning for umbrella releases across preparation, tagging, and planning stages.
  • Flexible Logging Configuration: Implemented global --verbose and --quiet logging flags for better control over CLI output, allowing users to suppress info-level messages or enable debug-level logging as needed.
  • Execution Plan Enhancements: The ExecutionPlan now includes an umbrella_version field and a filter_by_status method, providing more flexible plan manipulation and display of the resolved umbrella version in various output formats.
  • Updated Release Configuration: The releasekit.toml configuration file was updated to include a new exclude_bump option and a detailed list of unreleased_plugins for the exclude_publish group, offering finer-grained control over package release behavior.

🧠 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/tools/releasekit/src/releasekit/cli.py
    • Imported new logging configuration and plan status constants.
    • Added quiet logging by default for plan command unless verbose.
    • Enhanced _cmd_plan to support exclude_publish group resolution and pass umbrella_version to build_plan.
    • Implemented filtering logic for plan command based on --status, --bumped, and --publishable arguments.
    • Introduced global --verbose and --quiet command-line arguments.
    • Configured main logging based on global verbose/quiet flags.
  • py/tools/releasekit/src/releasekit/plan.py
    • Defined PlanStatus.PUBLISH_EXCLUDED to indicate packages bumped but not published.
    • Added BUMPED_STATUSES and PUBLISHABLE_STATUSES frozensets for common filtering scenarios.
    • Extended ExecutionPlan with an umbrella_version field and a filter_by_status method.
    • Updated plan formatting methods (format_table, format_ascii_flow, format_json) to display the umbrella version.
    • Modified build_plan to accept exclude_publish_names and umbrella_version, and to correctly assign PUBLISH_EXCLUDED status.
    • Exported new status sets.
  • py/tools/releasekit/src/releasekit/prepare.py
    • Updated prepare_release to use the new resolve_umbrella_version function for determining the umbrella version.
  • py/tools/releasekit/src/releasekit/release.py
    • Modified tag_release to use resolve_umbrella_version and pass the core_package for umbrella version determination.
  • py/tools/releasekit/src/releasekit/tags.py
    • Updated create_tags to accept a core_package argument and use resolve_umbrella_version for umbrella tag generation.
  • py/tools/releasekit/src/releasekit/versions.py
    • Introduced a new resolve_umbrella_version function to determine the umbrella version, prioritizing a specified core package.
    • Exported the new function.
  • py/tools/releasekit/tests/rk_plan_test.py
    • Updated TestPlanStatus to include the new publish_excluded status in its expected values.
    • Added comprehensive unit tests for the ExecutionPlan.filter_by_status method.
  • releasekit.toml
    • Added a new exclude_bump configuration option.
    • Clarified the purpose of exclude_publish and populated the unreleased_plugins group with specific entries.
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
Copy Markdown
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 introduces more granular control over the publishing process, allowing certain plugins to be excluded from publishing while still being version-bumped. It also adds filtering capabilities to the plan command. The refactoring to a centralized resolve_umbrella_version function is a great improvement for consistency and maintainability.

I've found a couple of areas for improvement:

  • A bug in the new logging configuration that prevents the plan command from being quiet by default.
  • An instance of variable shadowing that could make the code harder to maintain.

My detailed comments provide suggestions to address these points. Overall, these are solid changes that enhance the release tooling.

Comment thread py/tools/releasekit/src/releasekit/cli.py Outdated
Comment thread py/tools/releasekit/src/releasekit/cli.py Outdated
@yesudeep yesudeep force-pushed the yesudeep/fix/releasekit-docs branch 2 times, most recently from 0a10092 to f8b821e Compare February 17, 2026 22:19
@yesudeep yesudeep force-pushed the yesudeep/fix/releasekit-docs branch from f8b821e to b12fef0 Compare February 17, 2026 22:20
@yesudeep yesudeep requested a review from pavelgj February 17, 2026 22:22
@yesudeep yesudeep enabled auto-merge (squash) February 17, 2026 22:22
@yesudeep yesudeep merged commit 4a0f8c4 into main Feb 17, 2026
25 checks passed
@yesudeep yesudeep deleted the yesudeep/fix/releasekit-docs branch February 17, 2026 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants