Skip to content

Commit

Permalink
use sharable Makefile.pypi
Browse files Browse the repository at this point in the history
  • Loading branch information
parmentelat committed May 13, 2020
1 parent be63d8d commit 93c567d
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 34 deletions.
35 changes: 1 addition & 34 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,34 +1 @@
########## for uploading onto pypi
# updated in May 2020
# run pip install twine if needed
# I configured my login/password at pypi (both test and prod)
# using keyring (see https://pypi.org/project/twine/)

LIBRARY = nbautoeval

VERSION = $(shell python3 -c "from $(LIBRARY).version import __version__; print(__version__)")
VERSIONTAG = $(LIBRARY)-$(VERSION)
GIT-TAG-ALREADY-SET = $(shell git tag | grep '^$(VERSIONTAG)$$')
# to check for uncommitted changes
GIT-CHANGES = $(shell echo $$(git diff HEAD | wc -l))

# run this only once the sources are in on the right tag
pypi:
@if [ $(GIT-CHANGES) != 0 ]; then echo "You have uncommitted changes - cannot publish"; false; fi
@if [ -n "$(GIT-TAG-ALREADY-SET)" ] ; then echo "tag $(VERSIONTAG) already set"; false; fi
@if ! grep -q ' $(VERSION)' CHANGELOG.md ; then echo no mention of $(VERSION) in CHANGELOG.md; false; fi
@echo "You are about to release $(VERSION) - OK (Ctrl-c if not) ? " ; read _
git tag $(VERSIONTAG)
./setup.py sdist bdist_wheel
twine upload dist/*

# it can be convenient to define a test entry, say testpypi, in your .pypirc
# that points at the testpypi public site
# no upload to build.onelab.eu is done in this case
# try it out with
# pip install -i https://testpypi.python.org/pypi $(LIBRARY)
# dependencies need to be managed manually though
testpypi:
./setup.py sdist bdist_wheel
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

include Makefile.pypi
35 changes: 35 additions & 0 deletions Makefile.pypi
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# derived from name in setup.py

PYPI_NAME = $(shell python setup.py --name)
VERSION = $(shell python setup.py --version)

########## for uploading onto pypi
# updated in May 2020 to use twine for uploads
# run pip install twine if needed
# to initialize twine credentials
# keyring set upload.pypi.org parmentelat
# keyring set test.pypi.org parmentelat

VERSIONTAG = $(PYPI_NAME)-$(VERSION)
GIT-TAG-ALREADY-SET = $(shell git tag | grep '^$(VERSIONTAG)$$')
# to check for uncommitted changes
GIT-CHANGES = $(shell echo $$(git diff HEAD | wc -l))

# run this only once the sources are in on the right tag
pypi: cleanpypi
@if [ $(GIT-CHANGES) != 0 ]; then echo "You have uncommitted changes - cannot publish"; false; fi
@if [ -n "$(GIT-TAG-ALREADY-SET)" ] ; then echo "tag $(VERSIONTAG) already set"; false; fi
@if ! grep -q ' $(VERSION)' CHANGELOG.md ; then echo no mention of $(VERSION) in CHANGELOG.md; false; fi
@echo "You are about to release $(VERSION) - OK (Ctrl-c if not) ? " ; read _
git tag $(VERSIONTAG)
./setup.py sdist bdist_wheel
twine upload dist/*

testpypi: cleanpypi
./setup.py sdist bdist_wheel
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

cleanpypi:
rm -rf build dist

.PHONY: pypi testpypi cleanpypi

0 comments on commit 93c567d

Please sign in to comment.