Building the wheel with pip fails due to a misconfiguration in pyproject.toml. The heuristics to identify the files to be included in the wheel fails since the package name jupyterhub/ltiauthenticator differs from the source directory name ltiauthenticator.
How to reproduce
Clone repo's main branch
Switch to Repo Root dir
run pip wheel .
See error
Expected behaviour
Wheel should be build without error.
Actual behaviour
Error is raised:
% pip wheel .
Processing /Users/mclaus/Documents/jupyterhub/ltiauthenticator
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
╰─> [41 lines of output]
Traceback (most recent call last):
File "/Users/mclaus/mambaforge/envs/test-install/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/Users/mclaus/mambaforge/envs/test-install/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mclaus/mambaforge/envs/test-install/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 152, in prepare_metadata_for_build_wheel
whl_basename = backend.build_wheel(metadata_directory, config_settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/build.py", line 58, in build_wheel
return os.path.basename(next(builder.build(directory=wheel_directory, versions=['standard'])))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/builders/plugin/interface.py", line 155, in build
artifact = version_api[version](directory, **build_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/builders/wheel.py", line 412, in build_standard
for included_file in self.recurse_included_files():
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/builders/plugin/interface.py", line 176, in recurse_included_files
yield from self.recurse_selected_project_files()
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/builders/plugin/interface.py", line 180, in recurse_selected_project_files
if self.config.only_include:
^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/builders/config.py", line 781, in only_include
only_include = only_include_config.get('only-include', self.default_only_include()) or self.packages
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/builders/wheel.py", line 231, in default_only_include
return self.default_file_selection_options.only_include
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mclaus/mambaforge/envs/test-install/lib/python3.11/functools.py", line 1001, in __get__
val = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/65/wr102h8j6wz_gdytvslzntvwrql040/T/pip-build-env-nwo3q3ke/overlay/lib/python3.11/site-packages/hatchling/builders/wheel.py", line 219, in default_file_selection_options
raise ValueError(message)
ValueError: Unable to determine which files to ship inside the wheel using the following heuristics: https://hatch.pypa.io/latest/plugins/builder/wheel/#default-file-selection
At least one file selection option must be defined in the `tool.hatch.build.targets.wheel` table, see: https://hatch.pypa.io/latest/config/build/
As an example, if you intend to ship a directory named `foo` that resides within a `src` directory located at the root of your project, you can define the following:
[tool.hatch.build.targets.wheel]
packages = ["src/foo"]
[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.
Bug description
Building the wheel with pip fails due to a misconfiguration in
pyproject.toml
. The heuristics to identify the files to be included in the wheel fails since the package namejupyterhub/ltiauthenticator
differs from the source directory nameltiauthenticator
.How to reproduce
pip wheel .
Expected behaviour
Wheel should be build without error.
Actual behaviour
Error is raised: