scikit-build-core
scikit-build-core copied to clipboard
Presence of hidden files breaks editable installs
Git supports nested .gitignore
files. The presence of such a file inside the project's source currently breaks editable installs with the following traceback:
...
File "scikit_build_core/build/__init__.py", line 54, in build_editable
return _build_wheel_impl(
File "scikit_build_core/build/wheel.py", line 254, in _build_wheel_impl
modules = {
File "scikit_build_core/build/wheel.py", line 255, in <dictcomp>
path_to_module(Path(v).relative_to(wheel_dirs["platlib"])): str(
File "scikit_build_core/build/_pathutil.py", line 26, in path_to_module
path = path.with_name(path.name.split(".", 1)[0])
File "/lib/python3.10/pathlib.py", line 762, in with_name
raise ValueError("Invalid name %r" % (name))
ValueError: Invalid name ''
[end of output]
The problem is here because ".gitignore".split(".", 1)[0] == ""
, which is an invalid argument to path.with_name
.
We could fix this specifically for .gitignore
by adding it to the list of ignored files. However, that wouldn't fix the general case of adding an arbitrary hidden file (e.g. consider config files for linters like .flake8 or tools like .bumpversion). The current easiest workaround would be to add such files to sdist.exclude
, but that wouldn't work if a hidden file was actually important for the functioning of a package (I'm less concerned with linter configs etc since nobody should be developing off an sdist).