From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
"Daniel P . Berrange" <berrange@redhat.com>,
Beraldo Leal <bleal@redhat.com>,
Wainer dos Santos Moschetta <wainersm@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>, Cleber Rosa <crosa@redhat.com>,
John Snow <jsnow@redhat.com>
Subject: [RFC qemu.qmp PATCH 16/24] Add setuptools_scm package versioning
Date: Wed, 15 Dec 2021 16:06:26 -0500 [thread overview]
Message-ID: <20211215210634.3779791-17-jsnow@redhat.com> (raw)
In-Reply-To: <20211215210634.3779791-1-jsnow@redhat.com>
The version number will now be generated using the setuptools_scm
package, which pulls the version number from git tags.
As PEP660 is not yet usable with pyproject.toml style packages, we will
be sticking to setup.py style installation for now.
"version = 0.0.0" exists as a fallback in the event that the
build/installation environment does not have setuptools_scm
installed. Further, if setuptools_scm *is* installed but we are trying
to install directly from a source tarball (instead of from a python
source distribution), 'fallback_version': '0.0.0' will be utilized as
the fallback.
Lastly, tag this release as v0.0.0 to give setuptools_scm something to
work with and establish precedent for future releases.
Signed-off-by: John Snow <jsnow@redhat.com>
---
.gitlab-ci.d/build.yml | 2 +-
.gitlab-ci.d/python.Dockerfile | 1 +
INDEX.rst | 2 --
MANIFEST.in | 1 -
VERSION | 1 -
setup.cfg | 3 ++-
setup.py | 11 ++++++++++-
7 files changed, 14 insertions(+), 7 deletions(-)
delete mode 100644 VERSION
diff --git a/.gitlab-ci.d/build.yml b/.gitlab-ci.d/build.yml
index 6a68408..bf2d487 100644
--- a/.gitlab-ci.d/build.yml
+++ b/.gitlab-ci.d/build.yml
@@ -10,4 +10,4 @@ build-package:
paths:
- dist/*
variables:
- GIT_DEPTH: 1
+ GIT_DEPTH: 0
\ No newline at end of file
diff --git a/.gitlab-ci.d/python.Dockerfile b/.gitlab-ci.d/python.Dockerfile
index 35d84f3..93661b2 100644
--- a/.gitlab-ci.d/python.Dockerfile
+++ b/.gitlab-ci.d/python.Dockerfile
@@ -25,6 +25,7 @@ RUN dnf --setopt=install_weak_deps=False install -y \
&& python3 -m pip install --upgrade \
build \
pip \
+ setuptools_scm \
twine \
&& dnf clean all \
&& rm -rf ~/.cache/pip \
diff --git a/INDEX.rst b/INDEX.rst
index 8b7a56a..dddfcde 100644
--- a/INDEX.rst
+++ b/INDEX.rst
@@ -62,5 +62,3 @@ Files in this directory
- ``README.rst`` is used as the README file that is visible on PyPI.org.
- ``setup.cfg`` houses setuptools package configuration.
- ``setup.py`` is the setuptools installer used by pip; See above.
-- ``VERSION`` contains the PEP-440 compliant version used to describe
- this package; it is referenced by ``setup.cfg``.
diff --git a/MANIFEST.in b/MANIFEST.in
index 2a3fc58..9561fb1 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,2 +1 @@
-include VERSION
include README.rst
diff --git a/VERSION b/VERSION
deleted file mode 100644
index 7741e1a..0000000
--- a/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-0.0.0a1
diff --git a/setup.cfg b/setup.cfg
index f4a02d6..03dd4f0 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = qemu.qmp
-version = file:VERSION
+version = 0.0.0
author = John Snow
author_email = jsnow@redhat.com
maintainer = QEMU Project
@@ -26,6 +26,7 @@ classifiers =
Typing :: Typed
[options]
+setup_requires = setuptools_scm
python_requires = >= 3.6
packages =
qemu.qmp
diff --git a/setup.py b/setup.py
index cb9b9b6..5904d07 100755
--- a/setup.py
+++ b/setup.py
@@ -7,6 +7,12 @@ Copyright (c) 2020-2021 John Snow for Red Hat, Inc.
import setuptools
import pkg_resources
+try:
+ import setuptools_scm
+ _HAVE_SCM = True
+except ModuleNotFoundError:
+ _HAVE_SCM = False
+
def main():
"""
@@ -16,7 +22,10 @@ def main():
# https://medium.com/@daveshawley/safely-using-setup-cfg-for-metadata-1babbe54c108
pkg_resources.require('setuptools>=39.2')
- setuptools.setup()
+ if _HAVE_SCM:
+ setuptools.setup(use_scm_version={'fallback_version': '0.0.0'})
+ else:
+ setuptools.setup()
if __name__ == '__main__':
--
2.31.1
next prev parent reply other threads:[~2021-12-15 21:25 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-15 21:06 [RFC qemu.qmp PATCH 00/24] Python: Fork qemu.qmp Python lib into independent repo John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 01/24] Fork qemu.qmp from qemu.git John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 02/24] Update VERSION to 0.0.0a1 John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 03/24] Update maintainer metadata John Snow
2021-12-16 10:43 ` Daniel P. Berrangé
2021-12-16 16:34 ` John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 04/24] Update project description John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 05/24] Update project URLs John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 06/24] Move README.rst to INDEX.rst and update John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 07/24] Move PACKAGE.rst to README.rst " John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 08/24] Update Pipfile.lock John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 09/24] Remove sub-dependency pins from Pipfile John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 10/24] Add build and test container to gitlab CI configuration John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 11/24] Add package build step to GitLab CI John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 12/24] GitLab CI: Add check-dco script John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 13/24] GitLab CI: Add pipenv and tox tests John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 14/24] GitLab CI: Add avocado junit XML output to tests John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 15/24] GitLab CI: Publish python packages to GitLab package repo John Snow
2021-12-15 21:06 ` John Snow [this message]
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 17/24] Makefile: add build and publish targets John Snow
2021-12-16 10:48 ` Daniel P. Berrangé
2021-12-16 23:35 ` John Snow
2021-12-17 13:45 ` Daniel P. Berrangé
2022-01-11 19:48 ` John Snow
2022-01-12 10:07 ` Daniel P. Berrangé
2022-01-12 17:30 ` John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 18/24] add Sphinx documentation config stub John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 19/24] python: configure sphinx John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 20/24] python: adjust apidoc stubs John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 21/24] Fix doc cross-reference regressions John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 22/24] docs: add Makefile target John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 23/24] docs: add doc build to GitLab CI build step John Snow
2021-12-15 21:06 ` [RFC qemu.qmp PATCH 24/24] v0.0.1 John Snow
2021-12-16 10:41 ` [RFC qemu.qmp PATCH 00/24] Python: Fork qemu.qmp Python lib into independent repo Daniel P. Berrangé
2021-12-16 16:18 ` John Snow
2022-01-12 21:41 ` John Snow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211215210634.3779791-17-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=crosa@redhat.com \
--cc=eduardo@habkost.net \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).