labgrid icon indicating copy to clipboard operation
labgrid copied to clipboard

Warning when building wheel

Open pslldq opened this issue 10 months ago • 1 comments

Building a python wheel for labgrid using python -m build --wheel --no-isolation on the current master (2ce9e244a3a0ab9101bfb18f5f12c2d5d87e3f21) with Python 3.13.2 and build 1.2.2 (python -m build --version) results in the following warning:

/usr/lib/python3.13/site-packages/setuptools/command/build_py.py:212: _Warning: Package 'labgrid.remote.proto' is absent from the `packages` configuration.
!!

        ********************************************************************************
        ############################
        # Package would be ignored #
        ############################
        Python recognizes 'labgrid.remote.proto' as an importable package[^1],
        but it is absent from setuptools' `packages` configuration.

        This leads to an ambiguous overall configuration. If you want to distribute this
        package, please make sure that 'labgrid.remote.proto' is explicitly added
        to the `packages` configuration field.

        Alternatively, you can also rely on setuptools' discovery methods
        (for example by using `find_namespace_packages(...)`/`find_namespace:`
        instead of `find_packages(...)`/`find:`).

        You can read more about "package discovery" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

        If you don't want 'labgrid.remote.proto' to be distributed and are
        already explicitly excluding 'labgrid.remote.proto' via
        `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
        you can try to use `exclude_package_data`, or `include-package-data=False` in
        combination with a more fine grained `package-data` configuration.

        You can read more about "package data files" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


        [^1]: For Python, any directory (with suitable naming) can be imported,
              even if it does not contain any `.py` files.
              On the other hand, currently there is no concept of package data
              directory, all directories are treated like packages.
        ********************************************************************************

!!
  check.warn(importable)

While I'm not that familar with python packaging, I understand this warning as to either add the package, if the file is required at runtime or to use include-package-data=False to ignore the proto file in the directory.

pslldq avatar Mar 03 '25 14:03 pslldq

We need to revisit the grpc generation either way since we currently commit generated files into the repository. Ideally we would have grpc-tools as a build time dependency and generate them during installation. This is related since labgrid.remote.proto only contains the .proto definition file for gRPC.

Emantor avatar Mar 03 '25 14:03 Emantor