File: Makefile

package info (click to toggle)
objgraph 3.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 1,092 kB
  • sloc: python: 1,208; makefile: 102; sh: 9
file content (118 lines) | stat: -rw-r--r-- 3,352 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
PYTHON = python3

FILE_WITH_VERSION = objgraph.py
FILE_WITH_CHANGELOG = CHANGES.rst

VCS_DIFF_IMAGES = git diff docs/*.png

SPHINXOPTS      =
SPHINXBUILD     = sphinx-build
SPHINXBUILDDIR  = docs/_build
ALLSPHINXOPTS   = -d $(SPHINXBUILDDIR)/doctrees $(SPHINXOPTS) docs/


.PHONY: all
all:
	@echo "Nothing to build here"

.PHONY: images
images:                         ##: regenerate graphs used in documentation
	$(PYTHON) setup.py --build-images

.PHONY: docs
docs:                           ##: build HTML documentation
	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(SPHINXBUILDDIR)/html
	@echo
	@echo "Now look at $(SPHINXBUILDDIR)/html/index.html"

.PHONY: clean
clean:                          ##: remove build artifacts
	-rm -rf $(SPHINXBUILDDIR)/* build

.PHONY: test
test:                           ##: run tests
	tox -p auto

.PHONY:
check:
# 'make check' is defined in release.mk and here's how you can override it
define check_recipe =
	@$(MAKE) coverage
endef

.PHONY: coverage
coverage:                       ##: measure test coverage
	tox -e coverage2,coverage3

.PHONY: flake8
flake8:                         ##: check for style problems
	flake8

# Make sure $(VCS_DIFF_IMAGES) can work
.PHONY: config-imgdiff
config-imgdiff:
	@test -z "`git config diff.imgdiff.command`" && git config diff.imgdiff.command 'f() { imgdiff --eog -H $$1 $$2; }; f' || true

.PHONY: imgdiff
imgdiff: config-imgdiff         ##: compare differences in generated images
	$(VCS_DIFF_IMAGES)


.PHONY: releasechecklist
releasechecklist: check-date  # also release.mk will add other checks

include release.mk

.PHONY: check-date
check-date:
	@date_line="__date__ = '`date +%Y-%m-%d`'" && \
	    grep -q "^$$date_line$$" $(FILE_WITH_VERSION) || { \
	        echo "$(FILE_WITH_VERSION) doesn't specify $$date_line"; \
	        echo "Please run make update-date"; exit 1; }

.PHONY: update-date
update-date:                    ##: set release date in source code to today
	sed -i -e "s/^__date__ = '.*'/__date__ = '`date +%Y-%m-%d`'/" $(FILE_WITH_VERSION)


.PHONY: do-release
do-release: config-imgdiff

# override the release recipe in release.mk
define release_recipe =
	# I'm chicken so I won't actually do these things yet
	@echo "It is a good idea to run"
	@echo
	@echo "  make clean images docs"
	@echo
	@echo "about now.  Then review the images for unexpected differences with"
	@echo
	@echo "  make imgdiff"
	@echo
	@echo "then either revert or commit the new images and run"
	@echo
	@echo "  $(PYPI_PUBLISH)"
	@echo "  $(VCS_TAG)"
	@echo "  make publish-docs"
	@echo
	@echo "Please increment the version number in $(FILE_WITH_VERSION)"
	@echo "and add a new empty entry at the top of the changelog in $(FILE_WITH_CHANGELOG), then"
	@echo
	@echo '  $(VCS_COMMIT_AND_PUSH)'
	@echo
endef

# XXX: I should switch to readthedocs.org
.PHONY: publish-docs
publish-docs:                   ##: publish documentation on the website
	test -d ~/www/objgraph || { \
	    echo "There's no ~/www/objgraph, do you have the website checked out?"; exit 1; }
	make clean docs
	cp -r docs/_build/html/* ~/www/objgraph/
	cd ~/www/objgraph && git add . && git status
	@echo
	@echo "If everything looks fine, please run"
	@echo
	@echo "  cd ~/www/ && git commit -m \"Released objgraph `$(PYTHON) setup.py --version`\" && git push"
	@echo "  ssh fridge 'cd www && git pull'"
	@echo