Skip to content

Package Naming Convention and Issue 4766 #5156

@RogerMarsh

Description

@RogerMarsh

setuptools version

setuptools==80.10.1

Python version

Python 3.14

OS

Microsoft Windows 10

Additional environment information

No response

Description

I have a package called dpt3.0-dptdb and while catching up to Python3.14 ran into a problem where wheel complains with a FileNotFoundError about a successfully built package. The existing build and install stuff, up to Python3.11 using older versions of build, setuptools, and wheel, continued to succeed.

The difference between success and failure turns out to be between setuptools-75.8.0 and setuptools-75.8.1 which involved 'Fix "Wheel naming is not following PEP 491 convention" #4766'.

The problem was first seen after 'py -3.14-32 -m pip install setuptools' installed version 80.10.1 on a fresh install.

The Python Packaging User Guide says distribution name can contain letters, numbers, ., _ , and -.

PEP 491 gives the pattern re.sub("[^\w\d.]+", "_", distribution, re.UNICODE) for escaping each component of the filename.

So I am expecting the '.' in 'dpt3.0-dptdb' to be retained, not replaced by '_'.

The script demonstrating this is at packaging-problem.txt.

Expected behavior

I expected the 'nmake -f v3r0_vs2017_c++14_py3-14_32.Nmakefile local-install' command to successfully install the package with both 75.8.0 and 75.8.1 versions of setuptools, and by implication the 80.10.1 version too.

How to Reproduce

I will create a minimal reproducer if I must. Assuming just the project name matters it would be created with Python 3.12 on OpenBSD, not the nmake stuff where I care.

Output

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions