pypa / pypa/setuptools

[BUG] MANIFEST.in fails to conusme "dotted" directories

Open
#2,805 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Needs Triage Waiting User Feedback
Dominant language
Python
Stars
2.9k
Forks
1.4k
Avg merge
1d 1h
Merged PRs (30d)
1

Description

setuptools version

setuptools==58.1.0

Python version

Python 3.8

OS

Ubuntu 20.10

Additional environment information

No response

Description

Assume the following package structure, where : denotes a directory

- setup.py
- setup.cfg
- MANIFEST.in
- src:
  - foo:
    - foo1.yaml
    - foo2.yaml
  - bar:
    - bar1.yaml
    - bar2.yaml
  - zha.baz:
    - zhab.yaml

Next assume MANIFEST.in contains the following:

recursive-include src *.*

Then run python setup.py bdist_wheel && unzip -l *.whl

Expected behavior

The unzip output will show foo, bar, and baz.zha. All yaml files will be present.

Actual behavior

The unzip output will only shows foo and bar et al; baz.zha and its files are missing.

How to Reproduce

As above.

Output
python setup.py bdist_wheel && unzip -l dist/*.whl
Code of Conduct
  • I agree to follow the PSF Code of Conduct

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.

Research direction

Start with the reported setup.py, setup.cfg, and MANIFEST.in configuration and reproduce the issue using python setup.py bdist_wheel && unzip -l dist/*.whl. Trace how recursive-include src *.* handles the zha.baz directory, then verify that the dotted directory and its YAML files appear in the wheel without regressing the other directories.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.