Skip to content

Use uv instead of poetry - #82

Draft
bennetrr wants to merge 9 commits into
mainfrom
uv
Draft

bennetrr wants to merge 9 commits into
mainfrom
uv

Conversation

@bennetrr

Copy link
Copy Markdown
Member

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Migrates dependency management from Poetry to uv, adopts Python 3.13 and a src layout, and updates tooling and tests accordingly.

Changes:

  • Adds uv-based dependency locking, Docker builds, and CI setup.
  • Migrates the package to src/ and adopts Ruff.
  • Reorganizes pytest fixtures and reformats tests.

Reviewed changes

Copilot reviewed 44 out of 49 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
uv.lock Locks production and development dependencies.
tests/e2e/test_utils/test_repo.py Modernizes typing and formatting.
tests/e2e/test_utils/logger.py Updates formatting and documentation.
tests/e2e/test_utils/fixtures.py Removes the old fixture module.
tests/e2e/test_utils/__init__.py Updates utility exports.
tests/e2e/test_two_versions.py Applies Ruff formatting and fixture imports.
tests/e2e/test_two_hotfixes.py Applies Ruff formatting and fixture imports.
tests/e2e/test_two_commits.py Applies Ruff formatting and fixture imports.
tests/e2e/test_one_hotfix.py Applies Ruff formatting and fixture imports.
tests/e2e/test_one_hotfix_then_version.py Applies Ruff formatting and fixture imports.
tests/e2e/test_one_commit.py Applies Ruff formatting and fixture imports.
tests/e2e/test_long_running_branch.py Reformats and documents the regression test.
tests/e2e/test_hotfix_collision.py Reformats and documents the collision test.
tests/e2e/conftest.py Registers shared pytest fixtures.
src/get_release_version_action/utils/logger.py Modernizes logging setup.
src/get_release_version_action/utils/github_output.py Uses pathlib for action outputs.
src/get_release_version_action/utils/git.py Reorders module exports.
src/get_release_version_action/utils/commands.py Modernizes typing and subprocess handling.
src/get_release_version_action/utils/__init__.py Updates utility exports.
src/get_release_version_action/resources/logging.config.yaml Adds packaged logging configuration.
src/get_release_version_action/py.typed Marks the package as typed.
src/get_release_version_action/models/outputs.py Modernizes output model typing.
src/get_release_version_action/models/inputs.py Refactors input conversion and typing.
src/get_release_version_action/models/__init__.py Adds model exports under src.
src/get_release_version_action/entrypoint.sh Runs the installed Python application.
src/get_release_version_action/app.py Adds the relocated application entrypoint.
src/get_release_version_action/algorithms/semantic.py Reformats and clarifies semantic version logic.
src/get_release_version_action/algorithms/main_algorithm.py Modernizes paths and formatting.
src/get_release_version_action/algorithms/hash_based.py Updates imports and formatting.
src/get_release_version_action/algorithms/cli.py Updates CLI imports and logging invocation.
src/get_release_version_action/algorithms/__init__.py Updates algorithm exports.
src/get_release_version_action/__init__.py Adds package exports under src.
README.md Documents uv development commands.
pyproject.toml Replaces Poetry configuration with PEP 621 and uv groups.
LICENSE Updates the copyright year.
get_release_version_action/models/__init__.py Removes the old-layout model package.
get_release_version_action/app.py Removes the old application entrypoint.
get_release_version_action/__init__.py Removes the old package root.
Dockerfile Builds the action with uv and Python 3.13.
action.yaml Updates the published container version.
.vscode/settings.json Removes Poetry-specific editor settings.
.python-version Selects Python 3.13.
.mypy_stubs/semantic_release/enums.pyi Specifies concrete enum values.
.gitignore Ignores AI tooling directories.
.github/workflows/test.yaml Runs tests through uv.
.github/workflows/lint.yml Replaces pylint and flake8 with Ruff.
.github/actions/setup-python/action.yml Installs uv, Python, and dependencies.
.github/actions/local-action/action.yaml Removes a redundant comment.
Suppressed comments (1)

src/get_release_version_action/utils/github_output.py:24

  • This optional verbose diagnostic now propagates file-read failures, so an otherwise successful action can fail only because GITHUB_OUTPUT disappeared or is not readable. Catch the expected I/O and decoding errors and keep the diagnostic best-effort.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread pyproject.toml
"__init__.py:F401",
"test_*.py:F401,F811"
[project.scripts]
get-release-version-action = "get_release_version_action:main"
Comment thread README.md
# working directory: repository root
poetry install --without dev
```
This commands creates a virtual environment that can be used just like one created by the `venv` module.
Comment thread pyproject.toml
]
ignore = [
"D203", # Would put a blank line before class docstrings
"D212", # Would put the summary on the same line as the docstring qoutes
Comment thread README.md
# with poetry shell
# working directory: tests
pytest tests
uv run pytest tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants