~launchpad-pqm/launchpad/devel

1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
1
# This file modified from Zope3/Makefile
2
# Licensed under the ZPL, (c) Zope Corporation and contributors.
3
1770 by Canonical.com Patch Queue Manager
[trivial] Move to Python 2.4
4
PYTHON_VERSION=2.4
1746 by Canonical.com Patch Queue Manager
[r=jamesh] Simple database restoration script and sampledata fixes
5
PYTHON=python${PYTHON_VERSION}
3691.187.3 by Stuart Bishop
PYTHONPATH tweaks
6
PYTHONPATH:=$(shell pwd)/lib:${PYTHONPATH}
1716.1.49 by Christian Reis
Removing cruft from the main Makefile
7
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
8
TESTFLAGS=-p -v
9
TESTOPTS=
1716.1.49 by Christian Reis
Removing cruft from the main Makefile
10
11
SHHH=${PYTHON} utilities/shhh.py
12
STARTSCRIPT=runlaunchpad.py
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
13
Z3LIBPATH=$(shell pwd)/sourcecode/zope/src
14
HERE:=$(shell pwd)
1716.1.49 by Christian Reis
Removing cruft from the main Makefile
15
1831 by Canonical.com Patch Queue Manager
New config machinery, database helpers and oddsnsods required for staging
16
LPCONFIG=default
17
CONFFILE=configs/${LPCONFIG}/launchpad.conf
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
18
63.1.71 by Robert Collins
do not make check by default "make" invocation
19
# DO NOT ALTER : this should just build by default
20
default: inplace
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
21
3024.1.1 by Christian Reis
You can't make schema without make building, so make it mandatory. Patch by Matt Zimmerman <mdz@canonical.com>
22
schema: build
23
	$(MAKE) -C database/schema
1716.1.42 by Christian Reis
merged and unconflicted
24
1716.5.35 by kiko
Add for convenience a newsampledata proxy target to the main Makefile.
25
newsampledata:
26
	$(MAKE) -C database/schema newsampledata
27
3691.386.9 by Stuart Bishop
Add switch to disable database patch landings
28
check_launchpad_on_merge: build dbfreeze_check check importdcheck hctcheck
3504.1.55 by kiko
Implement half of https://launchpad.net/products/launchpad/+spec/stop-spurious-test-failures by adding a special Makefile target that doesn't run some of the sourcecode tets.
29
	# Use the check_for_launchpad rule which runs tests over a smaller
30
	# set of libraries, for performance and reliability reasons.
31
	$(MAKE) -C sourcecode check_for_launchpad PYTHON=${PYTHON} \
32
		PYTHON_VERSION=${PYTHON_VERSION} PYTHONPATH=$(PYTHONPATH)
33
3691.386.9 by Stuart Bishop
Add switch to disable database patch landings
34
dbfreeze_check:
35
	[ ! -f database-frozen.txt \
36
	    -o `PYTHONPATH= bzr status | grep database/schema/ | wc -l` -eq 0 ]
37
3691.1.251 by Steve Alexander
add makefile rule to ensure no merges from the ui branch
38
check_not_a_ui_merge:
39
	[ ! -f do-not-merge-to-mainline.txt ]
40
41
check_merge: check_not_a_ui_merge build check importdcheck hctcheck
3587.2.5 by Andrew Bennetts
Re-enable sourcecode/* and hct and sourcerer checks.
42
	# Work around the current idiom of 'make check' getting too long
43
	# because of hct and related tests. note that this is a short
3750.1.29 by Steve Alexander
make tests on ui merge run all tests
44
	# term solution, the long term solution will need to be
3587.2.5 by Andrew Bennetts
Re-enable sourcecode/* and hct and sourcerer checks.
45
	# finer grained testing anyway.
46
	# Run all tests. test_on_merge.py takes care of setting up the
47
	# database.
3504.1.55 by kiko
Implement half of https://launchpad.net/products/launchpad/+spec/stop-spurious-test-failures by adding a special Makefile target that doesn't run some of the sourcecode tets.
48
	$(MAKE) -C sourcecode check PYTHON=${PYTHON} \
49
		PYTHON_VERSION=${PYTHON_VERSION} PYTHONPATH=$(PYTHONPATH)
50
3750.1.31 by Steve Alexander
proper full tests check_merge_ui Makefile target
51
check_merge_ui: build check importdcheck hctcheck
52
	# Same as check_merge, except we don't need to do check_not_a_ui_merge.
53
	$(MAKE) -C sourcecode check PYTHON=${PYTHON} \
54
		PYTHON_VERSION=${PYTHON_VERSION} PYTHONPATH=$(PYTHONPATH)
3731 by Steve Alexander
merge from mpt resolving conflicts
55
3691.187.4 by Stuart Bishop
Rename makefile rule to be consistant
56
check_merge_edge: check_no_dbupdates check_merge
3691.187.2 by Stuart Bishop
Makefile entry for maintaining edge.launchpad.net branch
57
	# Allow the merge if there are no database updates, including
58
	# database patches or datamigration scripts (which should live
59
	# in database/schema/pending. Used for maintaining the
60
	# edge.lauchpad.net branch.
61
62
check_no_dbupdates:
3691.187.3 by Stuart Bishop
PYTHONPATH tweaks
63
	[ `PYTHONPATH= bzr status | grep database/schema/ | wc -l` -eq 0 ]
3691.187.2 by Stuart Bishop
Makefile entry for maintaining edge.launchpad.net branch
64
3504.1.55 by kiko
Implement half of https://launchpad.net/products/launchpad/+spec/stop-spurious-test-failures by adding a special Makefile target that doesn't run some of the sourcecode tets.
65
hctcheck: build
3587.2.5 by Andrew Bennetts
Re-enable sourcecode/* and hct and sourcerer checks.
66
	env PYTHONPATH=$(PYTHONPATH) \
67
	    ${PYTHON} -t ./test_on_merge.py -vv \
68
	        --dir hct --dir sourcerer
63.1.107 by Robert Collins
add check_merge target for pqm to use when merging - runs hct and related tests
69
3538.3.1 by Andrew Bennetts
Fix 'make importdcheck' by using the same path hack as test.py. Made the 'importdcheck' make rule a little more consistent with others, too.
70
importdcheck: build
71
	env PYTHONPATH=$(PYTHONPATH) \
3691.301.1 by David Allouche
experimental nested batch progress printer
72
	${PYTHON} -t ./lib/importd/test_all.py "$$TESTFILTER"
1810 by Canonical.com Patch Queue Manager
move importd code from buildbots tree to launchpad
73
63.1.94 by Robert Collins
enable cscvs and related test suites again
74
check: build
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
75
	# Run all tests. test_on_merge.py takes care of setting up the
2894.1.13 by Stuart Bishop
Make 'make check' log test times
76
	# database..
1377 by Canonical.com Patch Queue Manager
fix makefile setting of PYTHONPATH
77
	env PYTHONPATH=$(PYTHONPATH) \
2976.10.107 by Stuart Bishop
Merge from Rocketfuel
78
	${PYTHON} -t ./test_on_merge.py -vv
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
79
2279 by Canonical.com Patch Queue Manager
[trivial] add a make lint target (USE IT) and remove cruft
80
lint:
2513 by Canonical.com Patch Queue Manager
[trivial] Implement make lintmerge.
81
	@sh ./utilities/lint.sh
82
2976.10.108 by Stuart Bishop
Fix poexport-distrorelease-date-tarball test by including log output
83
#lintmerge:
84
#	@# Thank Stuart, not me!
85
#	@baz diff -s rocketfuel@canonical.com/launchpad--devel--0 | \
86
#		grep -v "^*" | \
87
#		grep -v "{arch}" | \
88
#		cut -c4- | \
89
#		xargs sh ./utilities/lint.sh
2279 by Canonical.com Patch Queue Manager
[trivial] add a make lint target (USE IT) and remove cruft
90
1746 by Canonical.com Patch Queue Manager
[r=jamesh] Simple database restoration script and sampledata fixes
91
pagetests: build
92
	env PYTHONPATH=$(PYTHONPATH) ${PYTHON} test.py test_pages
3044.1.15 by James Troup
Fix 'suspicious' line in Makefile to quiet emacs
93
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
94
inplace: build
95
96
build:
1831 by Canonical.com Patch Queue Manager
New config machinery, database helpers and oddsnsods required for staging
97
	${SHHH} $(MAKE) -C sourcecode build PYTHON=${PYTHON} \
98
	    PYTHON_VERSION=${PYTHON_VERSION} LPCONFIG=${LPCONFIG}
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
99
100
runners:
101
	echo "#!/bin/sh" > bin/runzope;
102
	echo "exec $(PYTHON) $(STARTSCRIPT) -C $(CONFFILE)" >> bin/runzope;
103
	chmod +x bin/runzope
104
	echo "#!/bin/sh" > bin/zopectl;
105
	echo "$(PYTHON) $(PWD)/src/zdaemon/zdctl.py \
106
	      -S schema.xml \
107
	      -C zdaemon.conf -d \$$*" >> bin/zopectl
108
	chmod +x bin/zopectl 
109
110
test_build: build
111
	$(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS)
112
113
test_inplace: inplace
114
	$(PYTHON) test.py $(TESTFLAGS) $(TESTOPTS)
115
116
ftest_build: build
117
	env PYTHONPATH=$(PYTHONPATH) \
1746 by Canonical.com Patch Queue Manager
[r=jamesh] Simple database restoration script and sampledata fixes
118
	    $(PYTHON) test.py -f $(TESTFLAGS) $(TESTOPTS)
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
119
120
ftest_inplace: inplace
121
	env PYTHONPATH=$(PYTHONPATH) \
1746 by Canonical.com Patch Queue Manager
[r=jamesh] Simple database restoration script and sampledata fixes
122
	    $(PYTHON) test.py -f $(TESTFLAGS) $(TESTOPTS)
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
123
3691.224.2 by Stuart Bishop
Ensure branch version info is generated for both 'run' and 'start' Makefile targets
124
run: inplace stop bzr_version_info
3673.3.2 by Stuart Bishop
Remove old thread-xxx.request files on Launchpad startup
125
	rm -f thread*.request
3691.224.2 by Stuart Bishop
Ensure branch version info is generated for both 'run' and 'start' Makefile targets
126
	LPCONFIG=${LPCONFIG} PYTHONPATH=$(Z3LIBPATH):$(PYTHONPATH) \
127
		 $(PYTHON) -t $(STARTSCRIPT) -C $(CONFFILE)
128
129
bzr_version_info:
3618.1.44 by Steve Alexander
add revno to main template
130
	rm -f bzr-version-info.py bzr-version-info.pyc
131
	if which bzr > /dev/null  && test -x `which bzr`; \
3691.220.11 by James Henstridge
small change so that testbrowser works with checkboxes
132
		then PYTHONPATH= bzr version-info --format=python > bzr-version-info.py 2>/dev/null; \
133
	fi
809 by Canonical.com Patch Queue Manager
Nuke some arch-tags
134
1884 by Canonical.com Patch Queue Manager
[trivial] run-as-daemon targets
135
# Run as a daemon - hack using nohup until we move back to using zdaemon
1937 by Canonical.com Patch Queue Manager
[r=jamesh] Common PID file handing module
136
# properly. We also should really wait until services are running before 
137
# exiting, as running 'make stop' too soon after running 'make start'
138
# will not work as expected.
3691.224.2 by Stuart Bishop
Ensure branch version info is generated for both 'run' and 'start' Makefile targets
139
start: inplace stop bzr_version_info
1884 by Canonical.com Patch Queue Manager
[trivial] run-as-daemon targets
140
	LPCONFIG=${LPCONFIG} PYTHONPATH=$(Z3LIBPATH):$(PYTHONPATH) \
141
		 nohup $(PYTHON) -t $(STARTSCRIPT) -C $(CONFFILE) \
1937 by Canonical.com Patch Queue Manager
[r=jamesh] Common PID file handing module
142
		 > ${LPCONFIG}-nohup.out 2>&1 &
1884 by Canonical.com Patch Queue Manager
[trivial] run-as-daemon targets
143
1937 by Canonical.com Patch Queue Manager
[r=jamesh] Common PID file handing module
144
# Kill launchpad last - other services will probably shutdown with it,
145
# so killing them after is a race condition.
2354 by Canonical.com Patch Queue Manager
[r=bjornt] Product and Project vocabularies should not contain inactive entries. Bug#1873
146
stop: build
1937 by Canonical.com Patch Queue Manager
[r=jamesh] Common PID file handing module
147
	@ LPCONFIG=${LPCONFIG} ${PYTHON} \
3691.132.11 by David Allouche
move all hctapi and trebuchet stuff to not-used
148
	    utilities/killservice.py librarian buildsequencer launchpad
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
149
1716.5.37 by kiko
Add harness Makefile convenience shortcut
150
harness:
151
	PYTHONPATH=lib python -i lib/canonical/database/harness.py
152
3673.1.10 by David Allouche
add iharness target to ./Makefile, that runs ipython instead of plain python
153
iharness:
154
	PYTHONPATH=lib ipython -i lib/canonical/database/harness.py
155
1716.5.42 by kiko
Add a rebuildfti Makefile target, and make newsampledata use it
156
rebuildfti:
157
	@echo Rebuilding FTI indexes on launchpad_dev database
3842.2.1 by jml at mumak
Use Makefile-configured python to run fti.py
158
	$(PYTHON) database/schema/fti.py -d launchpad_dev --force
1716.5.42 by kiko
Add a rebuildfti Makefile target, and make newsampledata use it
159
1627 by Canonical.com Patch Queue Manager
Initial, very very hacky, zcml-for-scripts support. Also, got rid of vestigal principals.zcml.
160
debug:
1831 by Canonical.com Patch Queue Manager
New config machinery, database helpers and oddsnsods required for staging
161
	LPCONFIG=${LPCONFIG} PYTHONPATH=$(Z3LIBPATH):$(PYTHONPATH) \
162
		 $(PYTHON) -i -c \ "from zope.app import Application;\
163
		    app = Application('Data.fs', 'site.zcml')()"
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
164
165
clean:
1716.2.29 by kiko
Make sure we /really/ clean up pygettextpo, and any libtool cruft, when make cleaning
166
	(cd sourcecode/pygettextpo; make clean)
2237 by Canonical.com Patch Queue Manager
[trivial] Libraraian upstream tweaks, which demonstrate the the feature is broken (?)
167
	find . -type f \( -name '*.o' -o -name '*.so' \
1716.2.29 by kiko
Make sure we /really/ clean up pygettextpo, and any libtool cruft, when make cleaning
168
	    -o -name '*.la' -o -name '*.lo' \
2237 by Canonical.com Patch Queue Manager
[trivial] Libraraian upstream tweaks, which demonstrate the the feature is broken (?)
169
	    -o -name '*.py[co]' -o -name '*.dll' \) -exec rm -f {} \;
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
170
	rm -rf build
171
172
realclean: clean
173
	rm -f TAGS tags
174
	$(PYTHON) setup.py clean -a
175
176
zcmldocs:
177
	PYTHONPATH=`pwd`/src:$(PYTHONPATH) $(PYTHON) \
2373 by Canonical.com Patch Queue Manager
[r=SteveA,BjornT] Zope3FormErrorMessages
178
	    ./sourcecode/zope/configuration/stxdocs.py \
1746 by Canonical.com Patch Queue Manager
[r=jamesh] Simple database restoration script and sampledata fixes
179
	    -f ./src/zope/app/meta.zcml -o ./doc/zcml/namespaces.zope.org
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
180
2237 by Canonical.com Patch Queue Manager
[trivial] Libraraian upstream tweaks, which demonstrate the the feature is broken (?)
181
potemplates: launchpad.pot
182
183
# Generate launchpad.pot by extracting message ids from the source
184
launchpad.pot:
185
	$(PYTHON) sourcecode/zope/utilities/i18nextract.py \
186
	    -d launchpad -p lib/canonical/launchpad \
187
	    -o locales
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
188
189
TAGS:
3618.1.39 by Steve Alexander
remove duplicate tags from make tags and TAGS targets in Makefile
190
	ctags -e -R lib
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
191
192
tags:
3618.1.39 by Steve Alexander
remove duplicate tags from make tags and TAGS targets in Makefile
193
	ctags -R lib
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
194
1716.1.49 by Christian Reis
Removing cruft from the main Makefile
195
.PHONY: check tags TAGS zcmldocs realclean clean debug stop start run \
196
		ftest_build ftest_inplace test_build test_inplace pagetests \
3504.1.55 by kiko
Implement half of https://launchpad.net/products/launchpad/+spec/stop-spurious-test-failures by adding a special Makefile target that doesn't run some of the sourcecode tets.
197
		check importdcheck check_merge schema default launchpad.pot \
3698 by Steve Alexander
add check_merge_ui makefile target
198
		check_launchpad_on_merge hctcheck check_merge_ui
1102 by Canonical.com Patch Queue Manager
Lucille had some XXXs which should have been NOTEs
199