Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fails with error metadata-generation-failed #184

Closed
martinclaus opened this issue Jan 3, 2024 · 0 comments · Fixed by #185
Closed

Build fails with error metadata-generation-failed #184

martinclaus opened this issue Jan 3, 2024 · 0 comments · Fixed by #185
Assignees
Labels

Comments

@martinclaus
Copy link
Collaborator

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 name jupyterhub/ltiauthenticator differs from the source directory name ltiauthenticator.

How to reproduce

  1. Clone repo's main branch
  2. Switch to Repo Root dir
  3. run pip wheel .
  4. 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant