Skip to content

Conversation

@ymarcon
Copy link
Member

@ymarcon ymarcon commented Feb 8, 2026

  • Migrate build system from Poetry to uv with Hatchling backend
  • Convert pyproject.toml to PEP 621 standard format
  • Update Python support from 3.7+ to 3.10+ (Python 3.7 EOL)
  • Replace poetry.lock with uv.lock
  • Update all Makefile commands to use uv (sync, run, build)
  • Update GitHub Actions CI/CD workflows to use astral-sh/setup-uv@v4
  • Change PyPI publishing to use uv publish with UV_PUBLISH_TOKEN
  • Add .python-version file for automatic Python version management
  • Update README with uv development setup instructions
  • Fix bug in init_otp() null pointer exception when WWW-Authenticate header is missing
  • Bump package version from 5.3.0 to 6.0.0

All 35 tests passing.

- Migrate build system from Poetry to uv with Hatchling backend
- Convert pyproject.toml to PEP 621 standard format
- Update Python support from 3.7+ to 3.8+ (Python 3.7 EOL)
- Replace poetry.lock with uv.lock
- Update all Makefile commands to use uv (sync, run, build)
- Update GitHub Actions CI/CD workflows to use astral-sh/setup-uv@v4
- Change PyPI publishing to use uv publish with UV_PUBLISH_TOKEN
- Add .python-version file for automatic Python version management
- Update README with uv development setup instructions
- Fix bug in init_otp() null pointer exception when WWW-Authenticate header is missing
- Bump package version from 5.3.0 to 5.4.0

All 35 tests passing.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates the project’s packaging/build workflow from Poetry to uv (with Hatchling + PEP 621 pyproject.toml), updates CI/CD accordingly, bumps the package version to 5.4.0, and includes a small runtime fix in init_otp().

Changes:

  • Replace Poetry configuration/lockfile with pyproject.toml (PEP 621 + Hatchling) and uv.lock, and bump version to 5.4.0.
  • Update developer tooling + GitHub Actions workflows to use uv for sync/run/build/publish.
  • Fix init_otp() to avoid errors when WWW-Authenticate is missing on 401 responses.

Reviewed changes

Copilot reviewed 7 out of 10 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
pyproject.toml Converts metadata to PEP 621, updates Python support to 3.8+, switches build backend to Hatchling, bumps version.
uv.lock Adds uv lockfile for resolved dependencies across supported Python versions.
poetry.lock Removes Poetry lockfile as part of migration.
Makefile Replaces Poetry commands with uv equivalents for install/test/build.
.github/workflows/ci.yml Uses astral-sh/setup-uv@v4 + uv sync/run for CI.
.github/workflows/deploy.yml Uses uv to sync/run/build and publish to PyPI via UV_PUBLISH_TOKEN.
README.md Updates development setup instructions to uv.
.python-version Pins a default local Python version (3.8).
.gitignore Adds .serena/ and normalizes debug.py entry formatting.
obiba_opal/core.py Formatting cleanup + init_otp() 401 header handling change.
Comments suppressed due to low confidence (1)

obiba_opal/core.py:363

  • OpalRequest.resource() assigns to self.resource, which shadows the resource() method on the instance. This can cause if self.resource: to be true even when a resource was never set (because it resolves to the bound method), and it prevents calling .resource() more than once. Use a separate attribute name (e.g., _resource) and update __build_request() to check that instead.
    def resource(self, ws):
        self.resource = ws
        return self

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Update requires-python to >=3.10 in pyproject.toml
- Remove Python 3.8 and 3.9 from classifiers, add Python 3.13
- Update .python-version to 3.10
- Update CI workflow to test Python 3.10, 3.11, 3.12, 3.13
- Update deploy workflow to use Python 3.12
- Update README requirements to Python 3.10 or higher
- Update uv.lock with new dependency versions for Python 3.10+

All 35 tests passing on Python 3.10.
BREAKING CHANGE: Dropped support for Python 3.8 and 3.9

This is a major version bump due to the following breaking changes:
- Minimum Python version is now 3.10 (was 3.8)
- Python 3.8 and 3.9 are no longer supported
- Users must upgrade to Python 3.10 or higher

Following semantic versioning principles for this breaking change.
@ymarcon ymarcon changed the title chore: migrate from Poetry to uv and bump version to 5.4.0 chore: migrate from Poetry to uv and bump version to 6.0.0 Feb 8, 2026
@ymarcon ymarcon merged commit 6568936 into master Feb 8, 2026
8 checks passed
@ymarcon ymarcon deleted the task/uv branch February 8, 2026 21:04
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.

1 participant