Skip to content

Conversation

@edmorley
Copy link
Member

@edmorley edmorley commented Oct 21, 2025

After the recent upstream dulwich 0.24.6 release, CI in this repo started failing in the test that runs Poetry with our oldest supported Python patch version (3.9.0).

eg:

[Installing Poetry]
Installing Poetry 2.2.1

[Installing dependencies using Poetry]
Creating virtual environment
Running 'poetry sync --only main'

unhashable type: 'list'

[Error: Unable to install dependencies using Poetry]
The 'poetry sync --only main' command to install the app's
dependencies failed (exit status: 1).

See the log output above for more information.

ERROR: failed to build: exit status 1

Investigation showed this only affects Python 3.9.0 and 3.9.1, which are multiple years behind the latest 3.9.x patch version (3.9.24).

For more details see the upstream issue I opened:
jelmer/dulwich#1948

Our options are either to drop support for 3.9.0 and 3.9.1 (and require use of Python 3.9.2+), or to pin the dulwich version.

Given we'll be dropping support for Python 3.9 in January 2026, for now we'll temporarily pin the dulwich version. (It's also possible the dulwich project might adjust it's requires-python and yank the 0.24.6 release, in which case we'll be able to remove the pin before then.)

GUS-W-20000287.

After the recent upstream `dulwich` 0.24.6 release, CI in this repo
started failing in the test that runs Poetry with our oldest supported
Python patch version (3.9.0).

eg:

```
[Installing Poetry]
Installing Poetry 2.2.1

[Installing dependencies using Poetry]
Creating virtual environment
Running 'poetry sync --only main'

unhashable type: 'list'

[Error: Unable to install dependencies using Poetry]
The 'poetry sync --only main' command to install the app's
dependencies failed (exit status: 1).

See the log output above for more information.

ERROR: failed to build: exit status 1
```

Investigation showed this only affects Python 3.9.0 and 3.9.1, which
are multiple years behind the latest 3.9.x patch version (3.9.24).

For more details see the upstream issue I opened:
jelmer/dulwich#1948

Our options are either to drop support for 3.9.0 and 3.9.1 (and require
use of Python 3.9.2+), or to pin the dulwich version.

Given we'll be dropping support for Python 3.9 in January 2026, for now
we'll temporarily pin the dulwich version. (It's also possible the
dulwich project might adjust it's `requires_python` and yank the 0.24.6
release, in which case we'll be able to remove the pin before then.)

GUS-W-20000287.
@edmorley edmorley self-assigned this Oct 21, 2025
@edmorley edmorley added the bug Something isn't working label Oct 21, 2025
@edmorley edmorley marked this pull request as ready for review October 21, 2025 10:44
@edmorley edmorley requested a review from a team as a code owner October 21, 2025 10:44
@edmorley edmorley enabled auto-merge (squash) October 21, 2025 10:49
@edmorley edmorley merged commit 42bc90c into main Oct 21, 2025
7 checks passed
@edmorley edmorley deleted the pin-dulwich branch October 21, 2025 11:01
heroku-linguist bot added a commit that referenced this pull request Oct 22, 2025
## heroku/python

### Changed

- Updated uv from 0.8.23 to 0.9.5. ([#446](#446) and [#449](#449))

### Fixed

- Pinned `dulwich` version when using Poetry to work around an incompatibility with Python <3.9.2. ([#447](heroku/heroku-buildpack-python#447))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants