BritishGeologicalSurvey / etlhelper

ETL Helper is a Python ETL library to simplify data transfer into and out of databases.
https://britishgeologicalsurvey.github.io/etlhelper/
GNU Lesser General Public License v3.0
100 stars 25 forks source link

Investigate packaging warning #212

Open volcan01010 opened 2 months ago

volcan01010 commented 2 months ago

Summary

As an ETL Helper developer, I want to understand why packaging process throws a warning so that I can fix the issue.

Description

During the packaging step of the release process, the following warning is raised:

/tmp/build-env-7rjaru8w/lib/python3.9/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'etlhelper.db_helpers' is absent from the `packages` configuration.
!!
        ********************************************************************************
        ############################
        # Package would be ignored #
        ############################
        Python recognizes 'etlhelper.db_helpers' 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 'etlhelper.db_helpers' 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 'etlhelper.db_helpers' to be distributed and are
        already explicitly excluding 'etlhelper.db_helpers' 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.
        ********************************************************************************

This doesn't seem to affect the distributed package, as db_helpers is importable. The test suite installs the package via pip and everything works. However, the warning may indicate some other issue that we haven't yet found.

Acceptance criteria