[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC qemu.qmp PATCH 17/24] Makefile: add build and publish targets
From: |
Daniel P . Berrangé |
Subject: |
Re: [RFC qemu.qmp PATCH 17/24] Makefile: add build and publish targets |
Date: |
Fri, 17 Dec 2021 13:45:58 +0000 |
User-agent: |
Mutt/2.1.3 (2021-09-10) |
On Thu, Dec 16, 2021 at 06:35:23PM -0500, John Snow wrote:
> On Thu, Dec 16, 2021 at 5:48 AM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
>
> > On Wed, Dec 15, 2021 at 04:06:27PM -0500, John Snow wrote:
> > > Signed-off-by: John Snow <jsnow@redhat.com>
> > > ---
> > > Makefile | 32 ++++++++++++++++++++++++++++++++
> > > 1 file changed, 32 insertions(+)
> > >
> > > diff --git a/Makefile b/Makefile
> > > index 97d737a..81bfca8 100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -110,3 +110,35 @@ distclean: clean
> > > rm -f .coverage .coverage.*
> > > rm -rf htmlcov/
> > > rm -rf test-results/
> > > +
> > > +.PHONY: pristine
> > > +pristine:
> > > + @git diff-files --quiet --ignore-submodules -- || \
> > > + (echo "You have unstaged changes."; exit 1)
> > > + @git diff-index --cached --quiet HEAD --ignore-submodules -- || \
> > > + (echo "Your index contains uncommitted changes."; exit 1)
> > > + @[ -z "$(shell git ls-files -o)" ] || \
> > > + (echo "You have untracked files: $(shell git ls-files
> > -o)"; exit 1)
> > > +
> > > +dist: setup.cfg setup.py Makefile README.rst
> > > + python3 -m build
> > > + @touch dist
> > > +
> > > +.PHONY: pre-publish
> > > +pre-publish: pristine dist
> > > + @git describe --exact-match 2>/dev/null || \
> > > + (echo -e "\033[0;31mThere is no annotated tag for this
> > commit.\033[0m"; exit 1)
> > > + python3 -m twine check --strict dist/*
> > > + git push -v --atomic --follow-tags --dry-run
> > > +
> > > +.PHONY: publish
> > > +publish: pre-publish
> > > + # Set the username via TWINE_USERNAME.
> > > + # Set the password via TWINE_PASSWORD.
> > > + # Set the pkg repository via TWINE_REPOSITORY.
> > > + python3 -m twine upload --verbose dist/*
> > > + git push -v --atomic --follow-tags
> > > +
> > > +.PHONY: publish-test
> > > +publish-test: pre-publish
> > > + python3 -m twine upload --verbose -r testpypi dist/*
> >
> > It doesn't feel very pythonic to have a makefile in the project.
> >
> > If we want some helpers for publishing releases, I would have
> > expected to see a python script eg scripts/publish.py
> >
> >
> Eh, Python folks use Makefiles too. I've been using these little Makefile
> targets for hobby things for a while and I had them laying around and ready
> to go. I have no strong need to "upgrade" to python scripts for these right
> now, unless there's some extra features you want to see.
Using make means you have to worry about portability across different
impls of make and different impls of shell. Using python means your
python project is portable to anywhere that python runs.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- [RFC qemu.qmp PATCH 07/24] Move PACKAGE.rst to README.rst and update, (continued)
- [RFC qemu.qmp PATCH 07/24] Move PACKAGE.rst to README.rst and update, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 08/24] Update Pipfile.lock, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 11/24] Add package build step to GitLab CI, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 12/24] GitLab CI: Add check-dco script, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 13/24] GitLab CI: Add pipenv and tox tests, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 14/24] GitLab CI: Add avocado junit XML output to tests, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 15/24] GitLab CI: Publish python packages to GitLab package repo, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 17/24] Makefile: add build and publish targets, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 19/24] python: configure sphinx, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 20/24] python: adjust apidoc stubs, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 18/24] add Sphinx documentation config stub, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 23/24] docs: add doc build to GitLab CI build step, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 21/24] Fix doc cross-reference regressions, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 16/24] Add setuptools_scm package versioning, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 22/24] docs: add Makefile target, John Snow, 2021/12/15
- [RFC qemu.qmp PATCH 24/24] v0.0.1, John Snow, 2021/12/15
- Re: [RFC qemu.qmp PATCH 00/24] Python: Fork qemu.qmp Python lib into independent repo, Daniel P . Berrangé, 2021/12/16