You have been requested to review the proposed merge of 
lp:~gary/launchpad/bug632218 into lp:launchpad.

This is a release-critical branch to fix a critical bug.

The symptoms are described in the bug report.

LOSAs are hopefully going to verify the fix in production in a few hours.  
Meanwhile, I plan to go ahead and try to get this merged, because I believe it 
will work.

To fix this problem, I took the approach of adding an explicit step for 
compiling the templates within make compile.  The cheapest yet most 
comprehensive way I could think of to do this was to process Launchpad's zcml.  
This should load all of our normal templates in the future.  For now, it loads 
the Python file that registers the ++profile++ adapter and thus processes the 
template.  You could argue that this is a side effect, and it is, but a 
defensible one: if zcml registers a view, the view should be instantiated with 
its template in order to be registered.  If we ever want to allow for lazy 
template generation for some reason, we can deal with that then, and I don't 
see a big advantage for us anyway.

This also makes "make clean" clean up .pt.py files generated by chameleon.

-- 
https://code.launchpad.net/~gary/launchpad/bug632218/+merge/34785
Your team Launchpad code reviewers is requested to review the proposed merge of 
lp:~gary/launchpad/bug632218 into lp:launchpad.
=== modified file 'Makefile'
--- Makefile	2010-09-07 05:39:39 +0000
+++ Makefile	2010-09-07 18:22:40 +0000
@@ -202,11 +202,14 @@
 	$(SHHH) PYTHONPATH= ./bin/buildout \
                 configuration:instance_name=${LPCONFIG} -c $(BUILDOUT_CFG)
 
+# bin/compile_templates is responsible for building all chameleon templates,
+# of which there is currently one, but of which many more are coming.
 compile: $(PY) $(BZR_VERSION_INFO)
 	mkdir -p /var/tmp/vostok-archive
 	${SHHH} $(MAKE) -C sourcecode build PYTHON=${PYTHON} \
 	    LPCONFIG=${LPCONFIG}
 	${SHHH} LPCONFIG=${LPCONFIG} ${PY} -t buildmailman.py
+	bin/compile_templates
 
 test_build: build
 	bin/test $(TESTFLAGS) $(TESTOPTS)
@@ -337,7 +340,8 @@
 	fi
 	find . -path ./eggs -prune -false -o \
 		-type f \( -name '*.o' -o -name '*.so' -o -name '*.la' -o \
-	    -name '*.lo' -o -name '*.py[co]' -o -name '*.dll' \) \
+	    -name '*.lo' -o -name '*.py[co]' -o -name '*.dll' -o \
+	    -name '*.pt.py' \) \
 	    -print0 | xargs -r0 $(RM)
 	$(RM) thread*.request
 	$(RM) -r lib/mailman

=== modified file 'setup.py'
--- setup.py	2010-07-23 08:50:49 +0000
+++ setup.py	2010-09-07 18:22:40 +0000
@@ -149,6 +149,8 @@
             'start_librarian '
                 '= canonical.launchpad.scripts.runlaunchpad:start_librarian',
             'ec2 = devscripts.ec2test.entrypoint:main',
+            'compile_templates '
+                '= canonical.launchpad.scripts:execute_zcml_for_scripts',
         ]
     ),
 )

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp

Reply via email to