Conversation
Summary of ChangesHello @leo-gan, 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 enhances the project's distribution capabilities by integrating PyPI publishing workflows. It establishes a robust set of Makefile commands for managing package builds and uploads, ensuring that both the core library and its command-line interface can be easily released and maintained on the Python Package Index. These changes streamline the release process and improve the discoverability and usability of the packages. Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Code Review
This pull request effectively sets up the project for PyPI integration by adding necessary metadata to the pyproject.toml files and creating build/publish scripts in the Makefile. The changes are logical and follow standard practices for Python packaging. My review focuses on enhancing the Makefile for better developer experience by introducing aggregate targets to manage both packages with single commands.
| @@ -1,4 +1,4 @@ | |||
| .PHONY: install lint format test | |||
| .PHONY: install lint format test build-core build-cli clean-core clean-cli publish-core publish-cli publish-core-test publish-cli-test | |||
There was a problem hiding this comment.
To support the new aggregate targets for cleaning, building, and publishing (which I've suggested in another comment), please add them to this .PHONY declaration. This is a good practice in Makefiles to ensure the targets always execute regardless of whether a file with the same name exists.
.PHONY: install lint format test build-core build-cli clean-core clean-cli publish-core publish-cli publish-core-test publish-cli-test clean build publish-test publish
| publish-cli: build-cli | ||
| cd $(CLI_PKG_DIR) && uvx --from twine twine upload dist/* No newline at end of file |
There was a problem hiding this comment.
To improve the developer experience, consider adding aggregate targets that perform actions for both packages simultaneously. This simplifies the workflow by allowing you to build, clean, or publish the entire project with a single command instead of running separate commands for each package.
publish-cli: build-cli
cd $(CLI_PKG_DIR) && uvx --from twine twine upload dist/*
# --- Aggregate Targets ---
clean: clean-core clean-cli
build: build-core build-cli
publish-test: publish-core-test publish-cli-test
publish: publish-core publish-cli
No description provided.