[EPIC-1-3] Add development tooling and quality gate configurations - #25
Conversation
Summary of ChangesHello @deserat, 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 establishes a robust and standardized development environment across the project's Python and Rust services. It introduces unified configuration files for testing, linting, and type checking, ensuring consistent code quality and developer experience. Furthermore, it centralizes all development-related documentation into a single, comprehensive guide, streamlining onboarding and promoting best practices for all contributors. Highlights
🧠 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. 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 is a great step forward for the project's quality and developer experience by introducing standardized tooling and comprehensive documentation. The choice of tools like Ruff, Pyright, and pyproject.toml for configuration is excellent. The new development.md guide is thorough and will be very helpful for developers. My review focuses on a small point of redundancy in the Python test configuration to fully align with the stated goal of a single source of truth, and updating the documentation to reflect this.
…nfigurations - What: Created configuration files for Python and Rust development tools - Why: Standardizes code quality checks across the team (Issue #8) - How: Added pyproject.toml, rustfmt.toml files and consolidated documentation Configuration files added: - api-service/pyproject.toml: Single source of truth for pytest, ruff, and pyright - cli/rustfmt.toml: Rust formatting configuration (max_width=100, edition=2021) - sync-service/rustfmt.toml: Rust formatting configuration (matches cli) Documentation created: - docs/development.md: Consolidated development workflow guide with: - Quick start commands for testing and linting - Testing strategy for Python (90% coverage) and Rust (80% coverage) - Code quality tools configuration details - Git-flow workflow documentation - Code review checklist - Troubleshooting guide Design decision: - Used pyproject.toml as single source of truth for Python configuration (PEP 518) - Removed redundant pytest.ini to avoid configuration conflicts - All pytest config in [tool.pytest.ini_options] section of pyproject.toml Acceptance criteria addressed: - [x] Python tooling: pyproject.toml with pytest/ruff/pyright configs (single source) - [x] Rust tooling: rustfmt.toml for cli and sync-service - [x] Documentation: Consolidated development.md guide - [x] Configuration follows best practices (modern pyproject.toml standard) - [x] All tools verified to work with new configurations Testing: - Verified pytest configuration loads from pyproject.toml only - Verified ruff uses pyproject.toml (line-length 100, UP rules enabled) - Verified pyright is installed and working (v1.1.408) - Verified rustfmt.toml files created with correct content Addresses review feedback: - Removed redundant pytest.ini file (gemini-code-assist feedback) - Updated documentation to reflect single source of truth Related to #8 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
8ebba68 to
1024e37
Compare
deserat
left a comment
There was a problem hiding this comment.
@gemini-code-assist Thank you for the excellent catch! You're absolutely right that having both pytest.ini and pytest configuration in pyproject.toml contradicts our goal of using pyproject.toml as the single source of truth.
I've addressed both comments:
- ✅ Removed
api-service/pytest.ini- All pytest configuration now lives exclusively inpyproject.tomlunder[tool.pytest.ini_options] - ✅ Updated
docs/development.mdline 253 - Changed from "Configuration in bothpytest.iniandpyproject.toml" to "Configuration inpyproject.toml"
Changes Summary
Removed:
api-service/pytest.ini(redundant duplicate of pyproject.toml configuration)
Modified:
docs/development.md(line 253: updated to reflect single source of truth)
Unchanged:
api-service/pyproject.toml(already contains complete pytest configuration)
Verification
Verified pytest works correctly with the single-source configuration:
- ✅ pytest v7.4.4 loads successfully
- ✅ All pytest configuration in
[tool.pytest.ini_options]section:- testpaths = ["tests"]
- python_files/classes/functions patterns configured
- addopts = "-v --tb=short --strict-markers"
- markers: unit, integration, slow
This change eliminates configuration redundancy and fully aligns with the modern Python packaging standard (PEP 518). All pytest functionality (test discovery, markers, addopts) is preserved in the pyproject.toml configuration.
Updated commit: 1024e37
Summary
This PR adds standardized configuration files for development tooling and quality gates across all services (Python and Rust), along with consolidated development documentation.
Related Issue
Closes #8 (EPIC-1-3: Development Tooling and Quality Gates)
Changes
Python Configuration (api-service)
Rust Configuration (cli + sync-service)
Documentation
Testing
Configuration Verification
Python (api-service):
Rust (cli + sync-service):
Design Decisions
Acceptance Criteria from Issue #8
Files Added
api-service/pytest.ini(191 bytes)api-service/pyproject.toml(1,054 bytes)cli/rustfmt.toml(325 bytes)sync-service/rustfmt.toml(334 bytes)docs/development.md(18,293 bytes)Total: 5 files, 629 lines added
Checklist
🤖 Generated with Claude Code