Hi, this series is part of an effort to publish the qemu.qmp package on PyPI. It is the second of three series to complete this work:
(1) Switch the new Async QMP library in to python/qemu/qmp --> (2) Fork python/qemu/qmp out into its own repository, with updated GitLab CI/CD targets to build packages. (3) Update qemu.git to install qemu.qmp from PyPI, and then delete python/qemu/qmp. This series is not meant to apply to qemu.git, rather -- it's the series that performs the split and would apply to a brand new repository. I am submitting it to the QEMU mailing list for these reasons: (1) To more broadly announce my intentions, and as reference alongside series #1 and #3 detailed above. (2) To ask for permission to become the maintainer of a 'qemu-project/qemu.qmp' repository, where I would like to host this subproject. (3) To ask for review on the README.rst file which details my intended contribution guidelines for this subproject. (4) To ask for review on the .gitlab-ci.d/ files and other repo-level CI/CD ephemera, including and especially the docs-building process. I think the generated docs are still ugly, and I'd like to upload them to readthedocs, among other things -- hence the RFC quality of this series. Some review/RFC notes: - I use jsnow/qemu.qmp as the repo name throughout the series; that will have to be changed eventually, but for the purposes of prototyping, it was nicer to have a fully working series. - I'm planning on using gitlab issues and MRs for the subproject. - I plan to version this lib independently, starting at 0.0.1 for the initial public release and bumping only the micro version for every last release. I plan to bump the minor version once it hits a "beta" state. There will be no cross-versioning against QEMU. I don't plan to publish new releases during QEMU freezes. - Check out a completed pipeline here: https://gitlab.com/jsnow/qemu.qmp/-/pipelines/430528258 It offers build artifacts, junit xml artifacts and GitLab test-level-view into the avocado unit tests. The build container is uploaded to GitLab's container registry and can be used to reproduce potential build/packaging errors. Every pipeline will produce built python packages and upload them to the GitLab package repository, see https://gitlab.com/jsnow/qemu.qmp/-/packages Known problems: - Sphinx output is still subjectively ugly, with too many layers of nesting - Docs are not yet uploaded anywhere (GitLab pages, readthedocs?) - Tags on a commit trigger two pipelines; this causes one of the package builds to fail as the version number will be duplicated in this case. Not entirely sure how I want to fix this yet ... ~ Happy Holidays ~, --js. John Snow (24): Fork qemu.qmp from qemu.git Update VERSION to 0.0.0a1 Update maintainer metadata Update project description Update project URLs Move README.rst to INDEX.rst and update Move PACKAGE.rst to README.rst and update Update Pipfile.lock Remove sub-dependency pins from Pipfile Add build and test container to gitlab CI configuration Add package build step to GitLab CI GitLab CI: Add check-dco script GitLab CI: Add pipenv and tox tests GitLab CI: Add avocado junit XML output to tests GitLab CI: Publish python packages to GitLab package repo Add setuptools_scm package versioning Makefile: add build and publish targets add Sphinx documentation config stub python: configure sphinx python: adjust apidoc stubs Fix doc cross-reference regressions docs: add Makefile target docs: add doc build to GitLab CI build step v0.0.1 .gitignore | 2 +- .gitlab-ci.d/build.yml | 14 ++ .gitlab-ci.d/check-dco.py | 98 ++++++++++ .gitlab-ci.d/containers.yml | 28 +++ .gitlab-ci.d/index.yml | 14 ++ .gitlab-ci.d/publish.yml | 11 ++ .gitlab-ci.d/python.Dockerfile | 35 ++++ .gitlab-ci.d/test.yml | 74 ++++++++ .gitlab-ci.yml | 3 + INDEX.rst | 64 +++++++ MANIFEST.in | 4 +- Makefile | 54 +++++- PACKAGE.rst | 43 ----- Pipfile | 4 +- Pipfile.lock | 314 ++++++++++++++++++--------------- README.rst | 219 ++++++++++++++--------- VERSION | 1 - avocado.cfg | 7 + docs/Makefile | 20 +++ docs/conf.py | 107 +++++++++++ docs/index.rst | 21 +++ docs/make.bat | 35 ++++ docs/qemu.qmp.error.rst | 8 + docs/qemu.qmp.events.rst | 7 + docs/qemu.qmp.legacy.rst | 7 + docs/qemu.qmp.message.rst | 8 + docs/qemu.qmp.models.rst | 8 + docs/qemu.qmp.protocol.rst | 9 + docs/qemu.qmp.qmp_client.rst | 8 + docs/qemu.qmp.rst | 24 +++ docs/qemu.qmp.util.rst | 8 + qemu/qmp/legacy.py | 4 +- setup.cfg | 41 ++--- setup.py | 13 +- 34 files changed, 1000 insertions(+), 317 deletions(-) create mode 100644 .gitlab-ci.d/build.yml create mode 100755 .gitlab-ci.d/check-dco.py create mode 100644 .gitlab-ci.d/containers.yml create mode 100644 .gitlab-ci.d/index.yml create mode 100644 .gitlab-ci.d/publish.yml create mode 100644 .gitlab-ci.d/python.Dockerfile create mode 100644 .gitlab-ci.d/test.yml create mode 100644 .gitlab-ci.yml create mode 100644 INDEX.rst delete mode 100644 PACKAGE.rst delete mode 100644 VERSION create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/qemu.qmp.error.rst create mode 100644 docs/qemu.qmp.events.rst create mode 100644 docs/qemu.qmp.legacy.rst create mode 100644 docs/qemu.qmp.message.rst create mode 100644 docs/qemu.qmp.models.rst create mode 100644 docs/qemu.qmp.protocol.rst create mode 100644 docs/qemu.qmp.qmp_client.rst create mode 100644 docs/qemu.qmp.rst create mode 100644 docs/qemu.qmp.util.rst -- 2.31.1