On Tue, May 25, 2021 at 08:24:33PM -0400, John Snow wrote: > Add setup.cfg and setup.py, necessary for installing a package via > pip. Add a ReST document (PACKAGE.rst) explaining the basics of what > this package is for and who to contact for more information. This > document will be used as the landing page for the package on PyPI. > > List the subpackages we intend to package by name instead of using > find_namespace because find_namespace will naively also packages tests, > things it finds in the dist/ folder, etc. I could not figure out how to > modify this behavior; adding allow/deny lists to setuptools kept > changing the packaged hierarchy. This works, roll with it. > > I am not yet using a pyproject.toml style package manifest, because > "editable" installs are not defined (yet?) by PEP-517/518. > > I consider editable installs crucial for development, though they have > (apparently) always been somewhat poorly defined. > > Pip now (19.2 and later) now supports editable installs for projects > using pyproject.toml manifests, but might require the use of the > --no-use-pep517 flag, which somewhat defeats the point. Full support for > setup.py-less editable installs was not introduced until pip 21.1.1: > https://github.com/pypa/pip/pull/9547/commits/7a95720e796a5e56481c1cc20b6ce6249c50f357 > > For now, while the dust settles, stick with the de-facto > setup.py/setup.cfg combination supported by setuptools. It will be worth > re-evaluating this point again in the future when our supported build > platforms all ship a fairly modern pip. > > Additional reading on this matter: > > https://github.com/pypa/packaging-problems/issues/256 > https://github.com/pypa/pip/issues/6334 > https://github.com/pypa/pip/issues/6375 > https://github.com/pypa/pip/issues/6434 > https://github.com/pypa/pip/issues/6438 > > Signed-off-by: John Snow > --- > python/PACKAGE.rst | 33 +++++++++++++++++++++++++++++++++ > python/setup.cfg | 22 ++++++++++++++++++++++ > python/setup.py | 23 +++++++++++++++++++++++ > 3 files changed, 78 insertions(+) > create mode 100644 python/PACKAGE.rst > create mode 100644 python/setup.cfg > create mode 100755 python/setup.py > > diff --git a/python/PACKAGE.rst b/python/PACKAGE.rst > new file mode 100644 > index 00000000000..1bbfe1b58e2 > --- /dev/null > +++ b/python/PACKAGE.rst > @@ -0,0 +1,33 @@ > +QEMU Python Tooling > +=================== > + > +This package provides QEMU tooling used by the QEMU project to build, > +configure, and test QEMU. It is not a fully-fledged SDK and it is subject > +to change at any time. > + > +Usage > +----- > + > +The ``qemu.qmp`` subpackage provides a library for communicating with > +QMP servers. The ``qemu.machine`` subpackage offers rudimentary > +facilities for launching and managing QEMU processes. Refer to each > +package's documentation > +(``>>> help(qemu.qmp)``, ``>>> help(qemu.machine)``) > +for more information. > + > +Contributing > +------------ > + > +This package is maintained by John Snow as part of > +the QEMU source tree. Contributions are welcome and follow the `QEMU > +patch submission process > +`_, which involves > +sending patches to the QEMU development mailing list. > + > +John maintains a `GitLab staging branch > +`_, and there is an > +official `GitLab mirror `_. > + > +Please report bugs on the `QEMU issue tracker > +`_ and tag ``@jsnow`` in > +the report. > diff --git a/python/setup.cfg b/python/setup.cfg > new file mode 100644 > index 00000000000..3fa92a2e73f > --- /dev/null > +++ b/python/setup.cfg > @@ -0,0 +1,22 @@ > +[metadata] > +name = qemu > +maintainer = QEMU Developer Team > +maintainer_email = qemu-devel@nongnu.org > +url = https://www.qemu.org/ > +download_url = https://www.qemu.org/download/ > +description = QEMU Python Build, Debug and SDK tooling. > +long_description = file:PACKAGE.rst > +long_description_content_type = text/x-rst > +classifiers = > + Development Status :: 3 - Alpha > + License :: OSI Approved :: GNU General Public License v2 (GPLv2) > + Natural Language :: English > + Operating System :: OS Independent > + Programming Language :: Python :: 3 :: Only > + > +[options] > +python_requires = >= 3.6 > +packages = > + qemu.qmp > + qemu.machine > + qemu.utils ^ Good! Reviewed-by: Cleber Rosa