jesserizzo / envoy_reader

MIT License
37 stars 26 forks source link

Update setup.py/exclude 'tests' #76

Closed onkelbeh closed 1 year ago

onkelbeh commented 3 years ago

otherwise it tries to install a package called 'tests' at top level:

>>> Emerging (1 of 1) dev-python/envoy-reader-0.18.4::HomeAssistantRepository
>>> Failed to emerge dev-python/envoy-reader-0.18.4, Log file:
>>>  '/var/tmp/portage/dev-python/envoy-reader-0.18.4/temp/build.log'
>>> Jobs: 0 of 1 complete, 1 failed                 Load avg: 0.53, 0.49, 0.46
 * Package:    dev-python/envoy-reader-0.18.4
 * Repository: HomeAssistantRepository
 * Maintainer: b@edevau.net
 * Upstream:   jesse.rizzo@gmail.com
 * USE:        abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_8 test userland_GNU
 * FEATURES:   network-sandbox preserve-libs sandbox userpriv usersandbox
>>> Unpacking source...
>>> Unpacking envoy-reader-0.18.4.tar.gz to /var/tmp/portage/dev-python/envoy-reader-0.18.4/work
>>> Source unpacked in /var/tmp/portage/dev-python/envoy-reader-0.18.4/work
>>> Preparing source in /var/tmp/portage/dev-python/envoy-reader-0.18.4/work/envoy_reader-0.18.4 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-python/envoy-reader-0.18.4/work/envoy_reader-0.18.4 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-python/envoy-reader-0.18.4/work/envoy_reader-0.18.4 ...
 * python3_8: running distutils-r1_run_phase distutils-r1_python_compile
python3.8 setup.py build -j 10
running build
running build_py
...
running install_egg_info
running egg_info
writing envoy_reader.egg-info/PKG-INFO
writing dependency_links to envoy_reader.egg-info/dependency_links.txt
writing requirements to envoy_reader.egg-info/requires.txt
writing top-level names to envoy_reader.egg-info/top_level.txt
reading manifest file 'envoy_reader.egg-info/SOURCES.txt'
writing manifest file 'envoy_reader.egg-info/SOURCES.txt'
Copying envoy_reader.egg-info to /var/tmp/portage/dev-python/envoy-reader-0.18.4/image/_python3.8/usr/lib/python3.8/site-packages/envoy_reader-0.18.4-py3.8.egg-info
running install_scripts
/usr/lib/python3.8/site-packages/setuptools/dist.py:634: UserWarning: Usage of dash-separated 'max-line-length' will not be supported in future versions. Please use the underscore name 'max_line_length' instead
  warnings.warn(
 * ERROR: dev-python/envoy-reader-0.18.4::HomeAssistantRepository failed (install phase):
 *   Package installs 'tests' package which is forbidden and likely a bug in the build system.
 *

Pull request recommendations:

Thanks for contributing!

onkelbeh commented 3 years ago

ping

onkelbeh commented 2 years ago

ping still the same with envoy-reader-0.20.0:

>>> Verifying ebuild manifests
>>> Emerging (1 of 2) dev-python/envoy-utils-0.0.1::HomeAssistantRepository
>>> Installing (1 of 2) dev-python/envoy-utils-0.0.1::HomeAssistantRepository
>>> Emerging (2 of 2) dev-python/envoy-reader-0.20.0::HomeAssistantRepository
>>> Failed to emerge dev-python/envoy-reader-0.20.0, Log file:
>>>  '/var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/build.log'
>>> Jobs: 1 of 2 complete, 1 failed                 Load avg: 0.37, 0.13, 0.10
 * Package:    dev-python/envoy-reader-0.20.0
 * Repository: HomeAssistantRepository
 * Maintainer: b@edevau.net
 * Upstream:   jesse.rizzo@gmail.com
 * USE:        abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_9 test userland_GNU
 * FEATURES:   network-sandbox preserve-libs sandbox userpriv usersandbox
>>> Unpacking source...
>>> Unpacking envoy-reader-0.20.0.tar.gz to /var/tmp/portage/dev-python/envoy-reader-0.20.0/work
>>> Source unpacked in /var/tmp/portage/dev-python/envoy-reader-0.20.0/work
>>> Preparing source in /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0 ...
 * python3_9: running distutils-r1_run_phase distutils-r1_python_compile
python3.9 setup.py build -j 6
running build
running build_py
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/tests
copying tests/__init__.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/tests
copying tests/test_envoy_reader.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/tests
copying tests/conftest.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/tests
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/envoy_reader
copying envoy_reader/__init__.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/envoy_reader
copying envoy_reader/envoy_reader.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/envoy_reader
warning: build_py: byte-compiling is disabled, skipping.

>>> Source compiled.
>>> Test phase [not enabled]: dev-python/envoy-reader-0.20.0

>>> Install dev-python/envoy-reader-0.20.0 into /var/tmp/portage/dev-python/envoy-reader-0.20.0/image
 * python3_9: running distutils-r1_run_phase distutils-r1_python_install
python3.9 setup.py install --skip-build --root=/var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9
running install
running install_lib
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/tests
copying /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/tests/__init__.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/tests
copying /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/tests/test_envoy_reader.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/tests
copying /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/tests/conftest.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/tests
creating /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/envoy_reader
copying /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/envoy_reader/__init__.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/envoy_reader
copying /var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0-python3_9/lib/envoy_reader/envoy_reader.py -> /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/envoy_reader
byte-compiling /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/tests/__init__.py to __init__.cpython-39.pyc
byte-compiling /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/tests/test_envoy_reader.py to test_envoy_reader.cpython-39.pyc
byte-compiling /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/tests/conftest.py to conftest.cpython-39.pyc
byte-compiling /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/envoy_reader/__init__.py to __init__.cpython-39.pyc
byte-compiling /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/envoy_reader/envoy_reader.py to envoy_reader.cpython-39.pyc
writing byte-compilation script '/var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/tmpv8uytdwu.py'
/usr/bin/python3.9 /var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/tmpv8uytdwu.py
removing /var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/tmpv8uytdwu.py
writing byte-compilation script '/var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/tmpx53b3f6s.py'
/usr/bin/python3.9 /var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/tmpx53b3f6s.py
removing /var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/tmpx53b3f6s.py
running install_egg_info
running egg_info
writing envoy_reader.egg-info/PKG-INFO
writing dependency_links to envoy_reader.egg-info/dependency_links.txt
writing requirements to envoy_reader.egg-info/requires.txt
writing top-level names to envoy_reader.egg-info/top_level.txt
reading manifest file 'envoy_reader.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'envoy_reader.egg-info/SOURCES.txt'
Copying envoy_reader.egg-info to /var/tmp/portage/dev-python/envoy-reader-0.20.0/image/_python3.9/usr/lib/python3.9/site-packages/envoy_reader-0.20.0-py3.9.egg-info
running install_scripts
 * ERROR: dev-python/envoy-reader-0.20.0::HomeAssistantRepository failed (install phase):
 *   Package installs 'tests' package which is forbidden and likely a bug in the build system.
 *
 * Call stack:
 *     ebuild.sh, line  127:  Called src_install
 *   environment, line 2873:  Called distutils-r1_src_install
 *   environment, line 1193:  Called _distutils-r1_run_foreach_impl 'distutils-r1_python_install'
 *   environment, line  455:  Called python_foreach_impl 'distutils-r1_run_phase' 'distutils-r1_python_install'
 *   environment, line 2543:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'distutils-r1_python_install'
 *   environment, line 2073:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'distutils-r1_python_install'
 *   environment, line 2071:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'distutils-r1_python_install'
 *   environment, line  775:  Called distutils-r1_run_phase 'distutils-r1_python_install'
 *   environment, line 1161:  Called distutils-r1_python_install
 *   environment, line 1063:  Called die
 * The specific snippet of code:
 *               die "Package installs '${p}' package which is forbidden and likely a bug in the build system.";
 *
 * If you need support, post the output of `emerge --info '=dev-python/envoy-reader-0.20.0::HomeAssistantRepository'`,
 * the complete build log and the output of `emerge -pqv '=dev-python/envoy-reader-0.20.0::HomeAssistantRepository'`.
 * The complete build log is located at '/var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-python/envoy-reader-0.20.0/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0'
 * S: '/var/tmp/portage/dev-python/envoy-reader-0.20.0/work/envoy_reader-0.20.0'
gtdiehl commented 2 years ago

@onkelbeh Where is this error seen? When I build and release to PyPi I don't see it.

EDIT: I've added your patch to my own branch and do not see an impact to my build. If this will resolve your issue I can merge it and include it in the next release.

onkelbeh commented 2 years ago

This happens, when you compile it locally from source. I use the SDIST tar.gz you provided at Pypi.

This is a very common mistake. A lot of package managers (e.g. Gentoo's portage) refuse to install packages named "test", "tests", "docs" or "expamle" at top level.

I am maintaining Home Assistant for Gentoo, which provides all packages required for Home Assistant for Gentoo Users. In the last 3 years I have filed ~250 PR with missing excludes in setuptools.find_packages() :-)

And yes, please merge it :-)

Please take a short look & check the Ebuilds for your component at https://github.com/onkelbeh/HomeAssistantRepository/blob/master/dev-python/envoy-reader/, the sed in line 40 adds the patch I requested above. MY_PN adresses the mismatch between the package name (in HA's domain) and the package filename on Pypi. RDEPEND lists the dependencies (I believe) your package needs at runtime, BDEPEND mentions the dependencies during the build.