aio-libs / aiosmtpd

A reimplementation of the Python stdlib smtpd.py based on asyncio.
https://aiosmtpd.aio-libs.org
Apache License 2.0
312 stars 95 forks source link

1.4.5: test suite and documentation source is part of the installed resources #418

Closed kloczek closed 4 months ago

kloczek commented 4 months ago

Easiest way to solve that would be move aiosmtpd/docs/ to doc/ and aiosmtpd/tests/ to tests/

```console + /usr/bin/python3 -sBm build -w --no-isolation * Getting build dependencies for wheel... * Building wheel... running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/aiosmtpd copying aiosmtpd/__init__.py -> build/lib/aiosmtpd copying aiosmtpd/__main__.py -> build/lib/aiosmtpd copying aiosmtpd/controller.py -> build/lib/aiosmtpd copying aiosmtpd/handlers.py -> build/lib/aiosmtpd copying aiosmtpd/lmtp.py -> build/lib/aiosmtpd copying aiosmtpd/main.py -> build/lib/aiosmtpd copying aiosmtpd/proxy_protocol.py -> build/lib/aiosmtpd copying aiosmtpd/smtp.py -> build/lib/aiosmtpd creating build/lib/aiosmtpd/docs copying aiosmtpd/docs/__init__.py -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/conf.py -> build/lib/aiosmtpd/docs creating build/lib/aiosmtpd/qa copying aiosmtpd/qa/__init__.py -> build/lib/aiosmtpd/qa copying aiosmtpd/qa/test_0packaging.py -> build/lib/aiosmtpd/qa copying aiosmtpd/qa/test_1testsuite.py -> build/lib/aiosmtpd/qa creating build/lib/aiosmtpd/testing copying aiosmtpd/testing/__init__.py -> build/lib/aiosmtpd/testing copying aiosmtpd/testing/helpers.py -> build/lib/aiosmtpd/testing copying aiosmtpd/testing/statuscodes.py -> build/lib/aiosmtpd/testing creating build/lib/aiosmtpd/tests copying aiosmtpd/tests/__init__.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/conftest.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_handlers.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_lmtp.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_main.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_misc.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_proxyprotocol.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_server.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_smtp.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_smtps.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_smtpsmuggling.py -> build/lib/aiosmtpd/tests copying aiosmtpd/tests/test_starttls.py -> build/lib/aiosmtpd/tests creating build/lib/aiosmtpd/tests/certs copying aiosmtpd/tests/certs/__init__.py -> build/lib/aiosmtpd/tests/certs running egg_info creating aiosmtpd.egg-info writing aiosmtpd.egg-info/PKG-INFO writing dependency_links to aiosmtpd.egg-info/dependency_links.txt writing entry points to aiosmtpd.egg-info/entry_points.txt writing requirements to aiosmtpd.egg-info/requires.txt writing top-level names to aiosmtpd.egg-info/top_level.txt writing manifest file 'aiosmtpd.egg-info/SOURCES.txt' reading manifest file 'aiosmtpd.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files matching '*.py[oc]' found anywhere in distribution warning: no previously-included files matching '*.sw[a-p]' found anywhere in distribution warning: no previously-included files matching 'pyvenv.cfg' found anywhere in distribution adding license file 'LICENSE' adding license file 'NOTICE' writing manifest file 'aiosmtpd.egg-info/SOURCES.txt' copying aiosmtpd/py.typed -> build/lib/aiosmtpd copying aiosmtpd/docs/.gitignore -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/Makefile -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/NEWS.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/auth.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/cli.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/concepts.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/controller.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/handlers.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/index.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/intro.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/lmtp.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/manpage.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/migrating.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/proxyprotocol.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/requirements.txt -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/smtp.rst -> build/lib/aiosmtpd/docs copying aiosmtpd/docs/testing.rst -> build/lib/aiosmtpd/docs creating build/lib/aiosmtpd/docs/_exts copying aiosmtpd/docs/_exts/autoprogramm.py -> build/lib/aiosmtpd/docs/_exts creating build/lib/aiosmtpd/docs/_static copying aiosmtpd/docs/_static/aiosmtpd.css -> build/lib/aiosmtpd/docs/_static copying aiosmtpd/tests/certs/server.crt -> build/lib/aiosmtpd/tests/certs copying aiosmtpd/tests/certs/server.key -> build/lib/aiosmtpd/tests/certs copying aiosmtpd/tests/certs/server_alt.crt -> build/lib/aiosmtpd/tests/certs copying aiosmtpd/tests/certs/server_alt.key -> build/lib/aiosmtpd/tests/certs installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/__init__.py -> build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/__main__.py -> build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/controller.py -> build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/handlers.py -> build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/lmtp.py -> build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/main.py -> build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/proxy_protocol.py -> build/bdist.linux-x86_64/wheel/aiosmtpd copying build/lib/aiosmtpd/smtp.py -> build/bdist.linux-x86_64/wheel/aiosmtpd creating build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/__init__.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/conf.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/.gitignore -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/Makefile -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/NEWS.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/auth.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/cli.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/concepts.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/controller.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/handlers.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/index.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/intro.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/lmtp.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/manpage.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/migrating.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/proxyprotocol.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/requirements.txt -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/smtp.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs copying build/lib/aiosmtpd/docs/testing.rst -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs creating build/bdist.linux-x86_64/wheel/aiosmtpd/docs/_exts copying build/lib/aiosmtpd/docs/_exts/autoprogramm.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs/_exts creating build/bdist.linux-x86_64/wheel/aiosmtpd/docs/_static copying build/lib/aiosmtpd/docs/_static/aiosmtpd.css -> build/bdist.linux-x86_64/wheel/aiosmtpd/docs/_static creating build/bdist.linux-x86_64/wheel/aiosmtpd/qa copying build/lib/aiosmtpd/qa/__init__.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/qa copying build/lib/aiosmtpd/qa/test_0packaging.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/qa copying build/lib/aiosmtpd/qa/test_1testsuite.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/qa creating build/bdist.linux-x86_64/wheel/aiosmtpd/testing copying build/lib/aiosmtpd/testing/__init__.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/testing copying build/lib/aiosmtpd/testing/helpers.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/testing copying build/lib/aiosmtpd/testing/statuscodes.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/testing creating build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/__init__.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/conftest.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_handlers.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_lmtp.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_main.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_misc.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_proxyprotocol.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_server.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_smtp.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_smtps.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_smtpsmuggling.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests copying build/lib/aiosmtpd/tests/test_starttls.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests creating build/bdist.linux-x86_64/wheel/aiosmtpd/tests/certs copying build/lib/aiosmtpd/tests/certs/__init__.py -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests/certs copying build/lib/aiosmtpd/tests/certs/server.crt -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests/certs copying build/lib/aiosmtpd/tests/certs/server.key -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests/certs copying build/lib/aiosmtpd/tests/certs/server_alt.crt -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests/certs copying build/lib/aiosmtpd/tests/certs/server_alt.key -> build/bdist.linux-x86_64/wheel/aiosmtpd/tests/certs copying build/lib/aiosmtpd/py.typed -> build/bdist.linux-x86_64/wheel/aiosmtpd running install_egg_info Copying aiosmtpd.egg-info to build/bdist.linux-x86_64/wheel/aiosmtpd-1.4.5-py3.8.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/aiosmtpd-1.4.5.dist-info/WHEEL creating '/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.5/dist/.tmp-vfackrj0/aiosmtpd-1.4.5-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'aiosmtpd/__init__.py' adding 'aiosmtpd/__main__.py' adding 'aiosmtpd/controller.py' adding 'aiosmtpd/handlers.py' adding 'aiosmtpd/lmtp.py' adding 'aiosmtpd/main.py' adding 'aiosmtpd/proxy_protocol.py' adding 'aiosmtpd/py.typed' adding 'aiosmtpd/smtp.py' adding 'aiosmtpd/docs/.gitignore' <<<<<==== HERE adding 'aiosmtpd/docs/Makefile' adding 'aiosmtpd/docs/NEWS.rst' adding 'aiosmtpd/docs/__init__.py' adding 'aiosmtpd/docs/auth.rst' adding 'aiosmtpd/docs/cli.rst' adding 'aiosmtpd/docs/concepts.rst' adding 'aiosmtpd/docs/conf.py' adding 'aiosmtpd/docs/controller.rst' adding 'aiosmtpd/docs/handlers.rst' adding 'aiosmtpd/docs/index.rst' adding 'aiosmtpd/docs/intro.rst' adding 'aiosmtpd/docs/lmtp.rst' adding 'aiosmtpd/docs/manpage.rst' adding 'aiosmtpd/docs/migrating.rst' adding 'aiosmtpd/docs/proxyprotocol.rst' adding 'aiosmtpd/docs/requirements.txt' adding 'aiosmtpd/docs/smtp.rst' adding 'aiosmtpd/docs/testing.rst' adding 'aiosmtpd/docs/_exts/autoprogramm.py' adding 'aiosmtpd/docs/_static/aiosmtpd.css' adding 'aiosmtpd/qa/__init__.py' adding 'aiosmtpd/qa/test_0packaging.py' adding 'aiosmtpd/qa/test_1testsuite.py' adding 'aiosmtpd/testing/__init__.py' <<<<<==== HERE adding 'aiosmtpd/testing/helpers.py' adding 'aiosmtpd/testing/statuscodes.py' adding 'aiosmtpd/tests/__init__.py' adding 'aiosmtpd/tests/conftest.py' adding 'aiosmtpd/tests/test_handlers.py' adding 'aiosmtpd/tests/test_lmtp.py' adding 'aiosmtpd/tests/test_main.py' adding 'aiosmtpd/tests/test_misc.py' adding 'aiosmtpd/tests/test_proxyprotocol.py' adding 'aiosmtpd/tests/test_server.py' adding 'aiosmtpd/tests/test_smtp.py' adding 'aiosmtpd/tests/test_smtps.py' adding 'aiosmtpd/tests/test_smtpsmuggling.py' adding 'aiosmtpd/tests/test_starttls.py' adding 'aiosmtpd/tests/certs/__init__.py' adding 'aiosmtpd/tests/certs/server.crt' adding 'aiosmtpd/tests/certs/server.key' adding 'aiosmtpd/tests/certs/server_alt.crt' adding 'aiosmtpd/tests/certs/server_alt.key' adding 'aiosmtpd-1.4.5.dist-info/LICENSE' adding 'aiosmtpd-1.4.5.dist-info/METADATA' adding 'aiosmtpd-1.4.5.dist-info/NOTICE' adding 'aiosmtpd-1.4.5.dist-info/WHEEL' adding 'aiosmtpd-1.4.5.dist-info/entry_points.txt' adding 'aiosmtpd-1.4.5.dist-info/top_level.txt' adding 'aiosmtpd-1.4.5.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel /usr/lib/python3.8/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'aiosmtpd.docs._exts' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'aiosmtpd.docs._exts' 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 'aiosmtpd.docs._exts' 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 'aiosmtpd.docs._exts' to be distributed and are already explicitly excluding 'aiosmtpd.docs._exts' 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) /usr/lib/python3.8/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'aiosmtpd.docs._static' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'aiosmtpd.docs._static' 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 'aiosmtpd.docs._static' 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 'aiosmtpd.docs._static' to be distributed and are already explicitly excluding 'aiosmtpd.docs._static' 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) Successfully built aiosmtpd-1.4.5-py3-none-any.whl ```
webknjaz commented 4 months ago

Duplicate of #356

kloczek commented 4 months ago

Why this ticket has been closed as "not planned"? 🤔