Skip to content

ci: pin poetry version to 1.8.5 for Python 3.9 compatibility#65

Merged
kinyoklion merged 5 commits into
mainfrom
devin/1780593159-fix-ci-poetry-python39
Jun 9, 2026
Merged

ci: pin poetry version to 1.8.5 for Python 3.9 compatibility#65
kinyoklion merged 5 commits into
mainfrom
devin/1780593159-fix-ci-poetry-python39

Conversation

@kinyoklion

@kinyoklion kinyoklion commented Jun 4, 2026

Copy link
Copy Markdown
Member

Requirements

  • I have added test coverage for new or changed functionality
  • I have followed the repository's pull request submission guidelines
  • I have validated my changes against all supported platform versions

Related issues

CI failing on Python 3.9 matrix entries due to Poetry installation error.

Describe the solution you've provided

Moves pipx install poetry==1.8.5 before actions/setup-python so pipx uses the system Python (3.12) instead of the matrix Python (3.9). Poetry 1.8.5's transitive dependencies now require Python 3.10+ (dataclass(slots=True)), so installing via pipx under Python 3.9 fails with TypeError: dataclass() got an unexpected keyword argument 'slots'.

Describe alternatives you've considered

  • Pinning Poetry to an older version — would miss bug fixes and features
  • Dropping Python 3.9 from the matrix — still a supported version

Additional context

Verified: 3/3 CI passes across all Python versions (3.9–3.13) on both Linux and Windows.

Link to Devin session: https://app.devin.ai/sessions/e40ffc3296dd45648f86ac10c42b6da5
Requested by: @kinyoklion


Note

Low Risk
CI workflow-only change with no application runtime impact; main risk is misordering steps on future workflow edits.

Overview
Fixes CI failures on Python 3.9 by changing when Poetry is installed in the Linux and Windows matrix jobs.

On both linux and windows, the Install poetry step now runs before actions/setup-python, and Poetry is explicitly pinned to 1.8.5. That way Poetry is installed while the runner still uses a newer system Python, instead of under the matrix Python 3.9 where Poetry 1.8.5’s dependencies can fail (e.g. dataclass(slots=True)).

Test and build steps still use the matrix Python after setup; only the Poetry install order and version pin change.

Reviewed by Cursor Bugbot for commit eeabcd7. Bugbot is set up for automated code reviews on this repo. Configure here.

The latest Poetry version has dependencies that use
dataclass(slots=True), a Python 3.10+ feature. This caused
CI failures on the Windows Python 3.9 matrix entry.

Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot added the devin-pr Pull request created by Devin AI label Jun 4, 2026
devin-ai-integration Bot and others added 3 commits June 4, 2026 17:22
Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
@kinyoklion kinyoklion marked this pull request as ready for review June 4, 2026 20:25
@kinyoklion kinyoklion requested a review from a team as a code owner June 4, 2026 20:25
Comment thread .github/workflows/ci.yml
with:
python-version: ${{ matrix.python-version }}

- name: Install poetry

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Instead of installing poetry through pipx directly, you should be able to use the abatilo/actions-poetry directly.

      - name: Install poetry
        uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439
        with:
          poetry-version: ${{ matrix.poetry-version }}

Also heads up but I think Jason is switching all the python stuff over to uv.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good call — updated to use abatilo/actions-poetry with poetry-version: "1.8.5", still placed before setup-python so pipx uses the system Python instead of the matrix Python (3.9). Pushed in eeabcd7.

Switch back to abatilo/actions-poetry action per review feedback,
with poetry-version pinned to 1.8.5. Kept before setup-python to
avoid Python 3.9 transitive dependency issue.

Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
@kinyoklion kinyoklion merged commit 4a684e3 into main Jun 9, 2026
15 checks passed
@kinyoklion kinyoklion deleted the devin/1780593159-fix-ci-poetry-python39 branch June 9, 2026 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devin-pr Pull request created by Devin AI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants