Conversation
WalkthroughMigration of project configuration from Poetry-centric structure to PEP 621 standard format. Relocates metadata, dependencies, and URLs to standardized sections, and switches build backend from poetry-core to UV Build with corresponding [tool.uv] configuration. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)✅ Unit Test PR creation complete.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@pyproject.toml`:
- Around line 1-3: The semantic-release config still points to the old Poetry
key; update the TOML path used by tool.semantic_release.version_toml to
reference the PEP 621 location by replacing the "tool.poetry.version" reference
with "project.version" so semantic-release reads/writes the version in the
[project] version field; ensure the existing [project] version = "5.5.5" remains
present.
- Around line 27-45: Replace remaining Poetry group install commands with UV
equivalents: change occurrences of "poetry install --only lint" / "poetry
install --only test" / "poetry install --only dev" to "uv sync --group lint" /
"uv sync --group test" / "uv sync --group dev" respectively (update the Makefile
targets and workflow job steps that call those exact strings). Also update the
semantic-release toml mapping by changing version_toml from
["pyproject.toml:tool.poetry.version"] to ["pyproject.toml:project.version"] so
release tooling reads the new PEP 621 location; ensure the change is applied to
the existing version_toml entry in pyproject.toml.
ℹ️ Review info
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (2)
poetry.lockis excluded by!**/*.lockuv.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
pyproject.toml
| [project] | ||
| name = "codenames" | ||
| version = "5.5.5" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
cat -n pyproject.toml | head -100Repository: asaf-kali/codenames
Length of output: 2751
Update version_toml to reference the migrated version location.
The project uses PEP 621 standard [project] section with version = "5.5.5" at line 3, but tool.semantic_release.version_toml at line 62 still references the non-existent tool.poetry.version. This breaks semantic-release's automated version bumping.
Fix
[tool.semantic_release]
-version_toml = ["pyproject.toml:tool.poetry.version"]
+version_toml = ["pyproject.toml:project.version"]
commit_parser = "emoji"🧰 Tools
🪛 GitHub Actions: Pipeline
[error] 1-1: Poetry configuration error: [tool.poetry] section not found in pyproject.toml. The step 'make install-lint' (which runs 'poetry install --only lint') failed due to missing Poetry config.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pyproject.toml` around lines 1 - 3, The semantic-release config still points
to the old Poetry key; update the TOML path used by
tool.semantic_release.version_toml to reference the PEP 621 location by
replacing the "tool.poetry.version" reference with "project.version" so
semantic-release reads/writes the version in the [project] version field; ensure
the existing [project] version = "5.5.5" remains present.
| [dependency-groups] | ||
| test = [ | ||
| "pytest>=7.2,<8", | ||
| "coverage>=7.2,<8", | ||
| "pytest-retry>=1.6,<2", | ||
| ] | ||
| lint = [ | ||
| "ruff>=0.7", | ||
| "black>=24.10", | ||
| "isort>=5.12.0", | ||
| "mypy>=1.13.0", | ||
| "pylint>=3.3.3", | ||
| "types-requests>=2.28.11.17,<3", | ||
| ] | ||
| dev = [ | ||
| "pre-commit>=3.2.2", | ||
| "twine>=5.0", | ||
| "python-semantic-release>=8.0,<9", | ||
| ] |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Find remaining Poetry install commands in CI/automation
rg -n 'poetry\s+install|--only\s+(lint|test|dev)' --type py --type toml --type yaml --type yml --type shRepository: asaf-kali/codenames
Length of output: 90
🏁 Script executed:
# Find Makefile and CI workflow files
fd -type f \( -name 'Makefile' -o -name 'makefile' -o -name '*.yml' -o -name '*.yaml' \) | head -20Repository: asaf-kali/codenames
Length of output: 233
🏁 Script executed:
# Check the full pyproject.toml to see semantic-release config and UV settings
cat -n pyproject.toml | tail -50Repository: asaf-kali/codenames
Length of output: 1144
🏁 Script executed:
# Search for remaining Poetry install commands without file type filter
rg 'poetry\s+install|--only\s+(lint|test|dev)' -nRepository: asaf-kali/codenames
Length of output: 256
🏁 Script executed:
# Find CI workflow files
fd -e yaml -e yml | grep -E '\.(github|gitlab)' | head -20Repository: asaf-kali/codenames
Length of output: 45
🏁 Script executed:
# Check full pyproject.toml for semantic-release config
cat pyproject.toml | grep -A 10 '\[tool.semantic_release\]'Repository: asaf-kali/codenames
Length of output: 373
🏁 Script executed:
# Check full pyproject.toml for UV config
cat pyproject.toml | grep -A 10 '\[tool.uv\]'Repository: asaf-kali/codenames
Length of output: 269
🏁 Script executed:
# Look for Makefile and check install targets
find . -name 'Makefile' -o -name 'makefile' | head -5Repository: asaf-kali/codenames
Length of output: 73
🏁 Script executed:
# Check if poetry is listed in pyproject.toml as a dependency
rg 'poetry' pyproject.tomlRepository: asaf-kali/codenames
Length of output: 116
🏁 Script executed:
# Find GitHub workflows
find .github/workflows -type f 2>/dev/null | head -20Repository: asaf-kali/codenames
Length of output: 93
🏁 Script executed:
# Check content of GitHub workflows if they exist
find .github -name '*.yml' -o -name '*.yaml' 2>/dev/null | xargs cat 2>/dev/null | grep -A 2 -B 2 'poetry\|uv\|install'Repository: asaf-kali/codenames
Length of output: 1412
🏁 Script executed:
# Find where project.version is defined
rg -n 'version\s*=' pyproject.toml | head -10Repository: asaf-kali/codenames
Length of output: 82
🏁 Script executed:
# See the [project] section
cat pyproject.toml | head -30Repository: asaf-kali/codenames
Length of output: 888
🏁 Script executed:
# Check the lint-install action file
cat .github/actions/lint-install/action.yml 2>/dev/null || cat .github/workflows/lint-install.yml 2>/dev/null || ls -la .github/actions/Repository: asaf-kali/codenames
Length of output: 429
🌐 Web query:
UV python dependency groups default-groups configuration schema
💡 Result:
In uv, dependency groups are declared using the standard [dependency-groups] table from PEP 735 (each group key maps to a list of requirement strings and/or objects like {include-group = "..."}). [1], [2]
To control which groups uv installs/syncs by default, configure:
[tool.uv]
default-groups = ["dev"] # default
# or
default-groups = ["dev", "lint"]
# or
default-groups = "all"Schema for tool.uv.default-groups:
- Location:
[tool.uv] - Type:
str | list[str] - Default:
["dev"] - Special value:
"all"enables all dependency groups by default. [1], [3]
Related (per-group) settings schema:
- Location:
[tool.uv.dependency-groups] - Type:
dict - Purpose: currently used to attach metadata like
requires-pythonto a group (not to define the group’s dependencies). [1], [3]
Sources
- PEP 735 – Dependency Groups in
pyproject.tomlhttps://peps.python.org/pep-0735/ - uv docs: Managing dependencies (dependency groups, nesting) https://docs.astral.sh/uv/concepts/projects/dependencies/
- uv docs: Settings (
default-groups,dependency-groups) https://docs.astral.sh/uv/reference/settings/
Migrate install commands to UV and fix semantic-release version path—Poetry groups no longer exist.
Three locations still reference Poetry's dependency groups, but pyproject.toml now uses UV:
- Makefile (lines 22, 25, 28, 31): Replace
poetry install --only lintetc. withuv sync --group lint .github/workflows/pipeline.yml: Replacepoetry install --only devwithuv sync --group devpyproject.tomlline 62: Updateversion_toml = ["pyproject.toml:tool.poetry.version"]toversion_toml = ["pyproject.toml:project.version"]so semantic-release can find the version at its new location.
Without these changes, CI will fail when Poetry commands run against the UV-only dependency schema, and release version bumping will fail.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pyproject.toml` around lines 27 - 45, Replace remaining Poetry group install
commands with UV equivalents: change occurrences of "poetry install --only lint"
/ "poetry install --only test" / "poetry install --only dev" to "uv sync --group
lint" / "uv sync --group test" / "uv sync --group dev" respectively (update the
Makefile targets and workflow job steps that call those exact strings). Also
update the semantic-release toml mapping by changing version_toml from
["pyproject.toml:tool.poetry.version"] to ["pyproject.toml:project.version"] so
release tooling reads the new PEP 621 location; ensure the change is applied to
the existing version_toml entry in pyproject.toml.
|
Note Unit test generation is a public access feature. Expect some limitations and changes as we gather feedback and continue to improve it. Generating unit tests... This may take up to 20 minutes. |
|
✅ Created PR with unit tests: #21 |
b06a308 to
55b3c23
Compare
Summary by CodeRabbit