Publish a new release to support building `socksio` from source on Python 3.14

Open
#65 0 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
55/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python

Research direction

Review issue #61 and the package build metadata that controls the flit_core requirement, then reproduce the failure with pip install --no-binary socksio socksio on Python 3.14. Publish a new release containing the updated requirement and verify that installing socksio from source completes successfully.

Written by the indexing model from the issue text.

Description

Installing the wheel for socksio on Python 3.14 works fine, but installing from source fails due to a bug in flit_core v2. Reproduction steps:

$ python -m venv socksio-env
$ source socksio-env/bin/activate
$ pip install --no-binary socksio socksio
Collecting socksio
  Downloading socksio-1.0.0.tar.gz (19 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [21 lines of output]
      Traceback (most recent call last):
        File "/Users/nyakku/Projects/yutto/socksio-env/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
          main()
          ~~~~^^
        File "/Users/nyakku/Projects/yutto/socksio-env/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
          json_out["return_val"] = hook(**hook_input["kwargs"])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/nyakku/Projects/yutto/socksio-env/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 175, in prepare_metadata_for_build_wheel
          return hook(metadata_directory, config_settings)
        File "/private/var/folders/6g/d8nyqgsx009gszprx9qf0nl80000gn/T/pip-build-env-mw7dy2oe/overlay/lib/python3.14/site-packages/flit_core/buildapi.py", line 29, in prepare_metadata_for_build_wheel
          metadata = make_metadata(module, ini_info)
        File "/private/var/folders/6g/d8nyqgsx009gszprx9qf0nl80000gn/T/pip-build-env-mw7dy2oe/overlay/lib/python3.14/site-packages/flit_core/common.py", line 368, in make_metadata
          md_dict.update(get_info_from_module(module))
                         ~~~~~~~~~~~~~~~~~~~~^^^^^^^^
        File "/private/var/folders/6g/d8nyqgsx009gszprx9qf0nl80000gn/T/pip-build-env-mw7dy2oe/overlay/lib/python3.14/site-packages/flit_core/common.py", line 178, in get_info_from_module
          docstring, version = get_docstring_and_version_via_ast(target)
                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
        File "/private/var/folders/6g/d8nyqgsx009gszprx9qf0nl80000gn/T/pip-build-env-mw7dy2oe/overlay/lib/python3.14/site-packages/flit_core/common.py", line 134, in get_docstring_and_version_via_ast
          isinstance(child.value, ast.Str))
                                  ^^^^^^^
      AttributeError: module 'ast' has no attribute 'Str'
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

This may cause Homebrew formulas that depend on socksio to fail to build/install on Python 3.14, because they build from source.

Because ast.Str has been removed in Python 3.14^1, and when building socksio==1.0.0 (the latest release on PyPI) from source it depends on flit_core >=2,<3. flit_core v2 has a bug on Python 3.14 that prevents building from source. This issue is fixed in flit_core v3.10.0 (see pypa/flit#684). Therefore, removing the <3 upper bound on flit_core — i.e., requiring flit_core >=3 — will resolve the problem (due to this issue, it is recommended to update the flit_core version requirement to >=3).

I noticed #61 already removed the <3 constraint, so publishing a new release should resolve this issue.

Dominant language
Python
Stars
56
Forks
12
Avg merge
2d 19h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sethmlarson/socksio

All issues in sethmlarson/socksio

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.