On Wed, Oct 28, 2020 at 01:02:52PM -0400, John Snow wrote:
On 10/28/20 11:10 AM, Cleber Rosa wrote:
+mirror <https://gitlab.com/jsnow/qemu/-/tree/python>`_, but
+contributions must be sent to the list for inclusion.
IMO it's not clear if this branch/mirror is your development work, a
staging area, etc.
Fair enough. jsnow/qemu/python is intended as a staging area for patches
that have been vetted on-list.
jsnow/qemu/master is a lazily-updated mirror. (I tend to update it every day
as part of my development process, but there are days I don't write code.)
jsnow/qemu/python-* is development work; review branches, etc.
I'll try to rephrase this a bit. What I want to communicate:
- This package exists as a subfolder of a larger project
- I am responsible for maintaining this package, but not for the larger
project
- Please contact *me* for problems with this package
- Contributions should go through qemu-devel (I will gently redirect
contributors who may send pull requests to the qemu devel list.)
OK, sounds good. I'll look at the exact rewording on v+1.
diff --git a/python/setup.cfg b/python/setup.cfg
new file mode 100755
index 0000000000..12b99a796e
--- /dev/null
+++ b/python/setup.cfg
@@ -0,0 +1,18 @@
+[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
+
Also ... licensing question, do we need *L*GPLv2, or does Python not have a
"linking exception" problem?
I guess we can't really re-license these files anyway, so nevermind.
(I immediately regret asking this.)
I'll just pretend you never did.
I know the sky is the limit, but I miss the Python version classifier,
at least:
Programming Language :: Python :: 3 :: Only
Sure.
Wait, why can you specify Python as a language? Is it possible to have
non-Python packages on PyPI?
*CONCERNED*
I guess it has to do with packages that can interact or serve other
languages. Or, that are (partially) written in another language?
And optionally those:
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Although it may be a good idea to add them along test jobs on those
specific Python versions.
Are these worth adding? I've got python_requires >= 3.6 down below. From my
test of a blank package upload to PyPI, it seems to display prominently:
https://pypi.org/project/qemu/
Is there a tangible benefit that you are aware of?
AFAICT, the classifiers are about letting people search for packages
that match a given criteria. It's all metadata, so the benefits are
not super tangible. I've used those to keep track / document the
Python versions that I know the project has been actively tested on,
and that's the reason of my comment about (CI) test jobs.
That gives us some leeway apart from the usual version constraints; in order
to independently use this library outside of the QEMU tree we may impose
more modern setups -- as long as the minimum requirements for QEMU itself
don't break.
OK.
Having a modern setuptools in order to install seems like less of a problem
barrier; and it seemed like a good idea to make it explicitly fail instead
of silently doing something weird if it didn't see/understand setup.cfg.
Agreed.
(And it seems like good practice to update pip in your venv, so I think
we'll be OK except for the stodgiest of users, but sometimes you can't have
new things on old systems without learning some new tricks!)
CentOS 8 has that specific version, while Ubuntu 18.04 has version
39.0. Ubuntu 20.04 has a recent enough version though. Given that
all GitLab CI moved to 20.04, this should be safe.
- Cleber.
FWIW, for the purposes of running the linters, I am using Fedora32 and the
python36 package.
This is a minor suggestion: use CentOS 8 stock Python 3.6 packages,
and then Fedora 33 with also stock Python 3.9. Even though all
tools are pinned, it's still a good idea to test at least min/max
(if not all) Python versions.