Skip to content
This repository was archived by the owner on Jan 22, 2026. It is now read-only.

Conversation

@fkodom
Copy link
Owner

@fkodom fkodom commented Jan 14, 2026

  • Rework template repo for ruff/ty tooling; first draft of Gemini templatize workflow.
  • Update README and templatize script
  • Fix one small hiccup with /templatize command

@gemini-code-assist
Copy link

Summary of Changes

Hello @fkodom, 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 refactors the repository's development environment and setup process. It modernizes the tooling by adopting ruff for formatting and ty for type checking, while also updating the minimum Python version. A key change is the integration of a new Gemini CLI command for streamlining the initial repository templatization, making the setup more efficient for new projects.

Highlights

  • Tooling Overhaul: Migrated from black to ruff format for code formatting and introduced ty for static type checking, streamlining the pre-commit hooks and development dependencies.
  • Python Version Update: The minimum required Python version has been increased from 3.8 to 3.11 in pyproject.toml.
  • Templatization Workflow Enhancement: Updated the repository setup process in the README.md to leverage a new Gemini CLI /templatize command, simplifying initial project configuration.
  • Dependency Management with uv: Integrated uv for virtual environment and package management, including uv.lock in .gitignore and updated installation instructions in the README.md.
  • Removal of Legacy Components: Deprecated and removed the .github/FUNDING.yml file and the 'slow test' infrastructure, including the .github/disabled-workflows/test-slow.yaml workflow and tests/conftest.py.

🧠 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.

Ignored Files
  • Ignored by pattern: .gemini/** (1)
    • .gemini/commands/templatize.toml
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/test.yaml
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.

@fkodom fkodom merged commit b0ca32e into main Jan 14, 2026
2 checks passed
@fkodom fkodom deleted the fkodom-refactor/gemini-slash-command branch January 14, 2026 21:39
Copy link

@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 overhauls the project's tooling by replacing black and mypy with ruff and ty, and updates the setup process to use gemini-cli and uv. The changes are a good step towards modernizing the template. However, I've identified a few issues that need addressing. My main concerns are that the uv.lock file is incorrectly added to .gitignore, which will prevent reproducible builds, and that mypy has not been fully removed from the project configuration. I've also included a couple of suggestions to improve the documentation in the README for better clarity and consistency.

@@ -1,4 +1,5 @@
.vscode
uv.lock

Choose a reason for hiding this comment

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

high

The uv.lock file should not be ignored. Lock files are intended to be checked into version control to ensure reproducible builds for all developers and in CI environments. According to the uv documentation, uv.lock should be committed.

Comment on lines 26 to 33
test = [
"black",
"mypy",
"pre-commit",
"pytest",
"pytest-cov",
"ruff",
"ty",
]

Choose a reason for hiding this comment

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

high

The mypy package is still listed as a test dependency, which contradicts the PR's goal of replacing mypy with ty. To complete the transition, mypy should be removed from the dependencies. Additionally, the [tool.mypy] configuration section should also be removed from this file for consistency.

test = [
    "pre-commit",
    "pytest",
    "pytest-cov",
    "ruff",
    "ty",
]

pip install "{{REPO_NAME}}[test] @ git+ssh://git@github.com/{{REPO_OWNER}}/{{REPO_NAME}}.git"
```bash
# Create and activate a new virtual environment
uv venv --python 3.12

Choose a reason for hiding this comment

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

medium

The installation instructions hardcode Python 3.12, while pyproject.toml specifies requires-python = ">=3.11". To maintain consistency with the project's stated requirements and avoid potential confusion for users of the template, it would be better to use Python 3.11 in this example.

Suggested change
uv venv --python 3.12
uv venv --python 3.11

| Tool | Description | Runs on |
| --- | --- | --- |
| [black](https://github.com/psf/black) | Code formatter | - `git commit` (through `pre-commit`) <br> - `git push` <br> - pull requests |
| [ruff](https://github.com/astral-sh/ruff) | Code linter | - `git commit` (through `pre-commit`) <br> - `git push` <br> - pull requests |

Choose a reason for hiding this comment

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

medium

The description for ruff is listed only as a "Code linter". Since this PR also configures ruff to handle code formatting (replacing black), it would be more accurate to update its description to "Code formatter and linter".

Suggested change
| [ruff](https://github.com/astral-sh/ruff) | Code linter | - `git commit` (through `pre-commit`) <br> - `git push` <br> - pull requests |
| [ruff](https://github.com/astral-sh/ruff) | Code formatter and linter | - `git commit` (through `pre-commit`) <br> - `git push` <br> - pull requests |

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants