← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~wallyworld/launchpad/move-lazr-js-source into lp:launchpad

 

Ian Booth has proposed merging lp:~wallyworld/launchpad/move-lazr-js-source into lp:launchpad with lp:~wallyworld/launchpad/lazrjs-picker-consolidate as a prerequisite.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #806246 in Launchpad itself: "Remove lazr js artifacts from tree and build process"
  https://bugs.launchpad.net/launchpad/+bug/806246

For more details, see:
https://code.launchpad.net/~wallyworld/launchpad/move-lazr-js-source/+merge/66977

The lazr js source is in the lp tree but it still lives in a lazr directory. This branch moves the various widgets/components directly under lp/app/javascript and also removes the lazr js artifacts from the build process.

== Implementation ==

Move lp/app/javascript/lazr/* -> lp/app/javascript

So now we have lp/app/javascript/activator, lp/app/javascript/formoverlay etc

The build process has been changed so that the lazr-js/build directory has been eliminated, as has the generation of a lazr.js file. Instead the javascript is simply concatenated into the launchpad.js file. The combo.css generation artifacts (assembly of widget css files) is done under the icing/build directory. The lazr symlink in the icing build directory is also removed.

The lp.scripts.utilities.js.jsbuild file has had the js minification functionality removed. This has previously been implemented as part of the make process and is not required here. The jsbuild file now just contains the code to assemble the widget css files.

== Tests ==

Various test_xxx.html files were edited to import the individual widget dependencies (eg overlay, anim, effects etc) as opposed to the previous single lazr.js file.

bin/test -vvc -layer=YUI
...
Ran 24 tests with 0 failures and 0 errors in 46.564 seconds.

The combo.css file was built and compared with the original and the differences were due to the altered build directory locations for the img resources as expected.

A make clean (with and without minification option) was done and lp was checked that js functioned as expected.

== Lint ==

Linting changed files:
  .bzrignore
  Makefile
  buildout.cfg
  buildout-templates/bin/combine-css.in
  lib/lp/app/javascript/activator/tests/activator.html
  lib/lp/app/javascript/anim/tests/anim.html
  lib/lp/app/javascript/autocomplete/tests/index.html
  lib/lp/app/javascript/choiceedit/tests/choiceedit.html
  lib/lp/app/javascript/formoverlay/tests/formoverlay.html
  lib/lp/app/javascript/inlineedit/tests/index.html
  lib/lp/app/javascript/overlay/tests/overlay.html
  lib/lp/app/javascript/picker/tests/picker.html
  lib/lp/app/javascript/tests/test_expander.html
  lib/lp/app/javascript/tests/test_hide_comment.html
  lib/lp/app/javascript/tests/test_lp_client.html
  lib/lp/app/javascript/tests/test_lp_collapsibles.html
  lib/lp/app/javascript/tests/test_lp_names.html
  lib/lp/app/javascript/tests/test_multicheckboxwidget.html
  lib/lp/app/javascript/tests/test_personpicker.html
  lib/lp/app/javascript/tests/test_picker.html
  lib/lp/bugs/javascript/tests/test_bug_notification_level.html
  lib/lp/bugs/javascript/tests/test_bug_subscription_portlet.html
  lib/lp/bugs/javascript/tests/test_filebug_dupfinder.html
  lib/lp/bugs/javascript/tests/test_me_too.html
  lib/lp/bugs/javascript/tests/test_subscribers_list.html
  lib/lp/bugs/javascript/tests/test_subscription.html
  lib/lp/code/javascript/tests/test_branchdiff.html
  lib/lp/code/javascript/tests/test_productseries-setbranch.html
  lib/lp/registry/javascript/tests/test_distroseries.html
  lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.html
  lib/lp/registry/javascript/tests/test_milestone_table.html
  lib/lp/registry/javascript/tests/test_structural_subscription.html
  lib/lp/scripts/utilities/js/jsbuild.py
  lib/lp/translations/javascript/tests/test_sourcepackage_sharing_details.html

./Makefile
      30: Line exceeds 78 characters.
     282: Line exceeds 78 characters.
     442: Line exceeds 78 characters.

-- 
https://code.launchpad.net/~wallyworld/launchpad/move-lazr-js-source/+merge/66977
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~wallyworld/launchpad/move-lazr-js-source into lp:launchpad.
=== modified file '.bzrignore'
--- .bzrignore	2011-06-30 23:12:06 +0000
+++ .bzrignore	2011-07-06 01:29:45 +0000
@@ -82,4 +82,5 @@
 run.gdb
 lib/canonical/launchpad/icing/icon-sprites
 lib/canonical/launchpad/icing/icon-sprites.positioning
+lib/canonical/launchpad/icing/yui
 .emacs.desktop

=== modified file 'Makefile'
--- Makefile	2011-07-02 15:40:24 +0000
+++ Makefile	2011-07-06 01:29:45 +0000
@@ -18,7 +18,6 @@
 
 ICING=lib/canonical/launchpad/icing
 LP_BUILT_JS_ROOT=${ICING}/build
-LAZR_BUILT_JS_ROOT=lazr-js/build
 
 ifeq ($(LPCONFIG), development)
 JS_BUILD := raw
@@ -27,10 +26,9 @@
 endif
 
 JS_YUI := $(shell utilities/yui-deps.py $(JS_BUILD:raw=))
-JS_LAZR := $(LAZR_BUILT_JS_ROOT)/lazr.js
 JS_OTHER := $(wildcard lib/canonical/launchpad/javascript/*/*.js)
-JS_LP := $(shell find lib/lp/*/javascript ! -path '*/tests/*' ! -path '*/app/javascript/lazr/*' -name '*.js' ! -name '.*.js' )
-JS_ALL := $(JS_YUI) $(JS_LAZR) $(JS_OTHER) $(JS_LP)
+JS_LP := $(shell find lib/lp/*/javascript ! -path '*/tests/*' -name '*.js' ! -name '.*.js' )
+JS_ALL := $(JS_YUI) $(JS_OTHER) $(JS_LP)
 JS_OUT := $(LP_BUILT_JS_ROOT)/launchpad.js
 
 MINS_TO_SHUTDOWN=15
@@ -178,16 +176,12 @@
 		${ICING}/sprite.css.in
 	${SHHH} bin/sprite-util create-image
 
-# We absolutely do not want to include the lazr.testing module and
-# its jsTestDriver test harness modifications in the lazr.js and
-# launchpad.js roll-up files.  They fiddle with built-in functions!
-# See Bug 482340.
-jsbuild_minify: bin/jsbuild
+jsbuild_widget_css: bin/jsbuild
 	${SHHH} bin/jsbuild \
-	    --builddir $(LAZR_BUILT_JS_ROOT) \
-	    --exclude testing/ --filetype $(JS_BUILD)
+ 	    --srcdir lib/lp/app/javascript \
+	    --builddir $(LP_BUILT_JS_ROOT)
 
-$(JS_YUI) $(JS_LAZR): jsbuild_minify
+$(JS_LP): jsbuild_widget_css
 
 $(JS_OUT): $(JS_ALL)
 ifeq ($(JS_BUILD), min)
@@ -486,4 +480,4 @@
 	reload-apache hosted_branches check_mailman check_config \
 	jsbuild jsbuild_minify clean_js clean_buildout buildonce_eggs \
 	build_eggs sprite_css sprite_image css_combine compile \
-	check_schema pydoctor clean_logs 
+	check_schema pydoctor clean_logs

=== modified file 'buildout-templates/bin/combine-css.in'
--- buildout-templates/bin/combine-css.in	2011-06-30 10:25:29 +0000
+++ buildout-templates/bin/combine-css.in	2011-07-06 01:29:45 +0000
@@ -25,18 +25,18 @@
 # list seems like the best option for now.
 names = [
     'style.css',
-    'lazr/build/yui/cssreset/reset.css',
+    'yui/cssreset/reset.css',
     # Use the old cssgrids instead of the new cssgrids.
     #'lazr/build/yui/cssgrids/grids.css',
     'cssgrids/grids.css',
-    'lazr/build/lazr/assets/skins/sam/lazr.css',
-    'lazr/build/inlineedit/assets/skins/sam/editor.css',
-    'lazr/build/autocomplete/assets/skins/sam/autocomplete.css',
-    'lazr/build/overlay/assets/skins/sam/pretty-overlay.css',
-    'lazr/build/formoverlay/assets/formoverlay-core.css',
-    'lazr/build/picker/assets/skins/sam/picker.css',
-    'lazr/build/activator/assets/skins/sam/activator.css',
-    'lazr/build/choiceedit/assets/choiceedit-core.css',
+    'build/lazr/assets/skins/sam/lazr.css',
+    'build/inlineedit/assets/skins/sam/editor.css',
+    'build/autocomplete/assets/skins/sam/autocomplete.css',
+    'build/overlay/assets/skins/sam/pretty-overlay.css',
+    'build/formoverlay/assets/formoverlay-core.css',
+    'build/picker/assets/skins/sam/picker.css',
+    'build/activator/assets/skins/sam/activator.css',
+    'build/choiceedit/assets/choiceedit-core.css',
     GALLERY_ACCORDION + 'gallery-accordion-core.css',
     GALLERY_ACCORDION + 'skins/sam/gallery-accordion-skin.css',
     'build/sprite.css',

=== modified file 'buildout.cfg'
--- buildout.cfg	2011-07-05 00:06:40 +0000
+++ buildout.cfg	2011-07-06 01:29:45 +0000
@@ -30,7 +30,7 @@
 
 prefer-final = true
 
-develop = . 
+develop = .
 
 [configuration]
 instance_name = development
@@ -42,8 +42,8 @@
     rm -rf ${buildout:yui-directory}/yui-${versions:yui}/*
     tar -zxf download-cache/dist/yui-${versions:yui}.tar.gz \
         -C ${buildout:yui-directory}/yui-${versions:yui}
-    mkdir -p lazr-js/build
-    ln -s ../../${buildout:yui-directory}/yui-${versions:yui} lazr-js/build/yui
+    ln -s `pwd`/${buildout:yui-directory}/yui-${versions:yui} \
+        lib/canonical/launchpad/icing/yui
 
 [filetemplates]
 recipe = z3c.recipe.filetemplate

=== removed symlink 'lib/canonical/launchpad/icing/lazr'
=== target was u'../../../../lazr-js'
=== removed symlink 'lib/canonical/launchpad/icing/yui'
=== target was u'../../../../lazr-js/build/yui'
=== renamed directory 'lib/lp/app/javascript/lazr/activator' => 'lib/lp/app/javascript/activator'
=== modified file 'lib/lp/app/javascript/activator/tests/activator.html'
--- lib/lp/app/javascript/lazr/activator/tests/activator.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/activator/tests/activator.html	2011-07-06 01:29:45 +0000
@@ -1,26 +1,26 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
 <html>
   <head>
   <title>Activator</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../yui/cssbase/base.css"/>
 
   <!-- The module under test -->
-  <script type="text/javascript" src="../../activator/activator.js"></script>
+  <script type="text/javascript" src="../activator.js"></script>
   <script type="text/javascript" src="../../anim/anim.js"></script>
   <script type="text/javascript" src="../../lazr/lazr.js"></script>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="activator.js"></script>
 
-  <link rel="stylesheet" href="../../testing/assets/testlogger.css"/>
+  <link rel="stylesheet" href="../../tests/lazr/assets/testlogger.css"/>
 </head>
 <body class="yui3-skin-sam">
 

=== renamed directory 'lib/lp/app/javascript/lazr/anim' => 'lib/lp/app/javascript/anim'
=== modified file 'lib/lp/app/javascript/anim/tests/anim.html'
--- lib/lp/app/javascript/lazr/anim/tests/anim.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/anim/tests/anim.html	2011-07-06 01:29:45 +0000
@@ -1,25 +1,25 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
 <html>
   <head>
   <title>Anim</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../yui/cssbase/base.css"/>
 
   <!-- The module under test -->
-  <script type="text/javascript" src="../../anim/anim.js"></script>
+  <script type="text/javascript" src="../anim.js"></script>
   <script type="text/javascript" src="../../lazr/lazr.js"></script>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="anim.js"></script>
 
-  <link rel="stylesheet" href="../../testing/assets/testlogger.css"/>
+  <link rel="stylesheet" href="../../tests/lazr/assets/testlogger.css"/>
 </head>
 <body class="yui3-skin-sam">
 

=== renamed directory 'lib/lp/app/javascript/lazr/autocomplete' => 'lib/lp/app/javascript/autocomplete'
=== modified file 'lib/lp/app/javascript/autocomplete/tests/index.html'
--- lib/lp/app/javascript/lazr/autocomplete/tests/index.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/autocomplete/tests/index.html	2011-07-06 01:29:45 +0000
@@ -5,14 +5,14 @@
   <title>autocomplete unit tests</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../yui/cssbase/base.css"/>
 
-  <link rel="stylesheet" href="../../testing/assets/testlogger.css"/>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <link rel="stylesheet" href="../../tests/lazr/assets/testlogger.css"/>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
 
   <!-- The module under test -->
   <script type="text/javascript" src="../autocomplete.js"></script>

=== renamed directory 'lib/lp/app/javascript/lazr/choiceedit' => 'lib/lp/app/javascript/choiceedit'
=== modified file 'lib/lp/app/javascript/choiceedit/tests/choiceedit.html'
--- lib/lp/app/javascript/lazr/choiceedit/tests/choiceedit.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/choiceedit/tests/choiceedit.html	2011-07-06 01:29:45 +0000
@@ -4,7 +4,7 @@
   <title>Status Editor</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
@@ -13,11 +13,11 @@
   <!-- Dependency -->
   <script type="text/javascript" src="../../lazr/lazr.js"></script>
   <script type="text/javascript" src="../../anim/anim.js"></script>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
   <script type="text/javascript" src="../../overlay/overlay.js"></script>
 
   <!-- The module under test -->
-  <script type="text/javascript" src="../../choiceedit/choiceedit.js"></script>
+  <script type="text/javascript" src="../choiceedit.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="choiceedit.js"></script>

=== renamed directory 'lib/lp/app/javascript/lazr/effects' => 'lib/lp/app/javascript/effects'
=== renamed directory 'lib/lp/app/javascript/lazr/formoverlay' => 'lib/lp/app/javascript/formoverlay'
=== modified file 'lib/lp/app/javascript/formoverlay/tests/formoverlay.html'
--- lib/lp/app/javascript/lazr/formoverlay/tests/formoverlay.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/formoverlay/tests/formoverlay.html	2011-07-06 01:29:45 +0000
@@ -4,23 +4,23 @@
   <title>Form Overlay</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../yui/cssbase/base.css"/>
-  <link rel="stylesheet" href="../../testing/assets/testlogger.css"/>
+  <link rel="stylesheet" href="../../tests/lazr/assets/testlogger.css"/>
 
   <!-- dependent modules from lazr-->
   <script type="text/javascript" src="../../lazr/lazr.js"></script>
   <script type="text/javascript" src="../../overlay/overlay.js"></script>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
 
   <!-- The module under test -->
-  <script type="text/javascript" src="../../formoverlay/formoverlay.js"></script>
+  <script type="text/javascript" src="../formoverlay.js"></script>
 
   <!-- Testing helpers -->
-  <script type="text/javascript" src="../../testing/mockio.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/mockio.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="formoverlay.js"></script>

=== renamed directory 'lib/lp/app/javascript/lazr/inlineedit' => 'lib/lp/app/javascript/inlineedit'
=== modified file 'lib/lp/app/javascript/inlineedit/tests/index.html'
--- lib/lp/app/javascript/lazr/inlineedit/tests/index.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/inlineedit/tests/index.html	2011-07-06 01:29:45 +0000
@@ -1,22 +1,22 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
 <html>
   <head>
   <title>Inline Edit</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../yui/cssbase/base.css"/>
-  <link rel="stylesheet" href="../../testing/assets/testlogger.css"/>
+  <link rel="stylesheet" href="../../tests/lazr/assets/testlogger.css"/>
 
   <!-- The module under test -->
-  <script type="text/javascript" src="../../inlineedit/editor.js"></script>
+  <script type="text/javascript" src="../editor.js"></script>
   <script type="text/javascript" src="../../anim/anim.js"></script>
   <script type="text/javascript" src="../../lazr/lazr.js"></script>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="inline_edit.js"></script>

=== renamed directory 'lib/lp/app/javascript/lazr/lazr/assets' => 'lib/lp/app/javascript/lazr/assets'
=== removed directory 'lib/lp/app/javascript/lazr/lazr'
=== renamed file 'lib/lp/app/javascript/lazr/lazr/lazr.js' => 'lib/lp/app/javascript/lazr/lazr.js'
=== renamed directory 'lib/lp/app/javascript/lazr/overlay' => 'lib/lp/app/javascript/overlay'
=== modified file 'lib/lp/app/javascript/overlay/tests/overlay.html'
--- lib/lp/app/javascript/lazr/overlay/tests/overlay.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/overlay/tests/overlay.html	2011-07-06 01:29:45 +0000
@@ -1,20 +1,20 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
 <html>
   <head>
   <title>Pretty Overlay</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../yui/cssbase/base.css"/>
-  <link rel="stylesheet" href="../../testing/assets/testlogger.css"/>
+  <link rel="stylesheet" href="../../tests/lazr/assets/testlogger.css"/>
 
   <!-- The module under test -->
-  <script type="text/javascript" src="../../overlay/overlay.js"></script>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <script type="text/javascript" src="../overlay.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="overlay.js"></script>

=== renamed directory 'lib/lp/app/javascript/lazr/picker' => 'lib/lp/app/javascript/picker'
=== modified file 'lib/lp/app/javascript/picker/tests/picker.html'
--- lib/lp/app/javascript/lazr/picker/tests/picker.html	2011-06-29 14:56:15 +0000
+++ lib/lp/app/javascript/picker/tests/picker.html	2011-07-06 01:29:45 +0000
@@ -5,19 +5,19 @@
   <title>Picker</title>
 
   <!-- YUI 3.0 Setup -->
-  <script type="text/javascript" src="../../testing/config.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/config.js"></script>
   <script type="text/javascript" src="../../yui/yui/yui.js"></script>
   <link rel="stylesheet" href="../../yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../yui/cssbase/base.css"/>
-  <link rel="stylesheet" href="../../testing/assets/testlogger.css"/>
+  <link rel="stylesheet" href="../../tests/lazr/assets/testlogger.css"/>
 
   <!-- The module under test -->
   <script type="text/javascript" src="../../overlay/overlay.js"></script>
-  <script type="text/javascript" src="../../picker/picker.js"></script>
+  <script type="text/javascript" src="../picker.js"></script>
   <script type="text/javascript" src="../../anim/anim.js"></script>
   <script type="text/javascript" src="../../lazr/lazr.js"></script>
-  <script type="text/javascript" src="../../testing/testing.js"></script>
+  <script type="text/javascript" src="../../tests/lazr/testing.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="picker.js"></script>

=== renamed directory 'lib/lp/app/javascript/lazr/testing' => 'lib/lp/app/javascript/tests/lazr'
=== modified file 'lib/lp/app/javascript/tests/test_expander.html'
--- lib/lp/app/javascript/tests/test_expander.html	2011-06-30 14:49:16 +0000
+++ lib/lp/app/javascript/tests/test_expander.html	2011-07-06 01:29:45 +0000
@@ -3,8 +3,6 @@
     <title>Expander widget</title>
     <!-- YUI 3.0 Setup -->
     <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -13,8 +11,8 @@
       href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/javascript/test.css" />
-    <script type="text/javascript" src="../../../app/javascript/client.js"></script>
-    <script type="text/javascript" src="../../../app/javascript/lp.js"></script>
+    <script type="text/javascript" src="../client.js"></script>
+    <script type="text/javascript" src="../lp.js"></script>
 
     <!-- The module under test -->
     <script type="text/javascript" src="../expander.js"></script>

=== modified file 'lib/lp/app/javascript/tests/test_hide_comment.html'
--- lib/lp/app/javascript/tests/test_hide_comment.html	2011-06-07 21:15:48 +0000
+++ lib/lp/app/javascript/tests/test_hide_comment.html	2011-07-06 01:29:45 +0000
@@ -3,8 +3,6 @@
     <title>Launchpad Comment Hiding</title>
     <!-- YUI 3.0 Setup -->
     <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"

=== modified file 'lib/lp/app/javascript/tests/test_lp_client.html'
--- lib/lp/app/javascript/tests/test_lp_client.html	2011-04-05 11:47:15 +0000
+++ lib/lp/app/javascript/tests/test_lp_client.html	2011-07-06 01:29:45 +0000
@@ -5,7 +5,6 @@
 
   <!-- YUI 3.0 Setup -->
   <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>

=== modified file 'lib/lp/app/javascript/tests/test_lp_collapsibles.html'
--- lib/lp/app/javascript/tests/test_lp_collapsibles.html	2010-11-23 14:18:07 +0000
+++ lib/lp/app/javascript/tests/test_lp_collapsibles.html	2011-07-06 01:29:45 +0000
@@ -5,13 +5,15 @@
 
   <!-- YUI 3.0 Setup -->
   <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
 
-  <!-- The module under test -->
+  <!-- Some required dependencies -->
+  <script type="text/javascript" src="../effects/effects.js"></script>
+
+      <!-- The module under test -->
   <script type="text/javascript" src="../lp.js"></script>
 
   <!-- The test suite -->

=== modified file 'lib/lp/app/javascript/tests/test_lp_names.html'
--- lib/lp/app/javascript/tests/test_lp_names.html	2011-06-21 05:37:38 +0000
+++ lib/lp/app/javascript/tests/test_lp_names.html	2011-07-06 01:29:45 +0000
@@ -5,7 +5,6 @@
 
   <!-- YUI 3.0 Setup -->
   <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>

=== modified file 'lib/lp/app/javascript/tests/test_multicheckboxwidget.html'
--- lib/lp/app/javascript/tests/test_multicheckboxwidget.html	2011-04-05 03:15:54 +0000
+++ lib/lp/app/javascript/tests/test_multicheckboxwidget.html	2011-07-06 01:29:45 +0000
@@ -12,9 +12,10 @@
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
 
   <!-- Some required dependencies -->
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <script type="text/javascript" src="../client.js"></script>
-
+  <script type="text/javascript" src="../activator/activator.js"></script>
+  <script type="text/javascript" src="../lazr/lazr.js"></script>
+  <script type="text/javascript" src="../overlay/overlay.js"></script>
   <!-- The module under test -->
   <script type="text/javascript" src="../multicheckbox.js"></script>
 

=== modified file 'lib/lp/app/javascript/tests/test_personpicker.html'
--- lib/lp/app/javascript/tests/test_personpicker.html	2011-07-06 01:29:44 +0000
+++ lib/lp/app/javascript/tests/test_personpicker.html	2011-07-06 01:29:45 +0000
@@ -3,8 +3,6 @@
     <title>Launchpad PersonPicker</title>
     <!-- YUI 3.0 Setup -->
     <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -13,13 +11,19 @@
       href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/javascript/test.css" />
-    <script type="text/javascript" src="../../../app/javascript/client.js"></script>
-    <script type="text/javascript" src="../../../app/javascript/lp.js"></script>
-    <script type="text/javascript" src="../lazr/picker/picker.js"></script>
+
+    <!-- Some required dependencies -->
+    <script type="text/javascript" src="../client.js"></script>
+    <script type="text/javascript" src="../lp.js"></script>
+    <script type="text/javascript" src="../activator/activator.js"></script>
+    <script type="text/javascript" src="../anim/anim.js"></script>
+    <script type="text/javascript" src="../lazr/lazr.js"></script>
+    <script type="text/javascript" src="../overlay/overlay.js"></script>
+    <script type="text/javascript" src="../picker/picker.js"></script>
     <script type="text/javascript" src="../picker_patcher.js"></script>
 
     <!-- The module under test -->
-    <script type="text/javascript" src="../lazr/picker/person_picker.js"></script>
+    <script type="text/javascript" src="../picker/person_picker.js"></script>
 
     <!-- The test suite -->
     <script type="text/javascript" src="test_personpicker.js"></script>

=== modified file 'lib/lp/app/javascript/tests/test_picker.html'
--- lib/lp/app/javascript/tests/test_picker.html	2011-07-06 01:29:44 +0000
+++ lib/lp/app/javascript/tests/test_picker.html	2011-07-06 01:29:45 +0000
@@ -12,17 +12,16 @@
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
 
   <!-- Some required dependencies -->
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/testing/config.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/activator/activator.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/overlay/overlay.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/anim/anim.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr/lazr.js"></script>
+  <script type="text/javascript" src="../activator/activator.js"></script>
+  <script type="text/javascript" src="../overlay/overlay.js"></script>
+  <script type="text/javascript" src="../anim/anim.js"></script>
+  <script type="text/javascript" src="../lazr/lazr.js"></script>
   <script type="text/javascript" src="../client.js"></script>
   <script type="text/javascript" src="../picker_patcher.js"></script>
 
   <!-- The module under test -->
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/picker/picker.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/picker/person_picker.js"></script>
+  <script type="text/javascript" src="../picker/picker.js"></script>
+  <script type="text/javascript" src="../picker/person_picker.js"></script>
 
   <!-- The test suite -->
   <script type="text/javascript" src="test_picker.js"></script>

=== modified file 'lib/lp/bugs/javascript/tests/test_bug_notification_level.html'
--- lib/lp/bugs/javascript/tests/test_bug_notification_level.html	2011-04-27 10:19:21 +0000
+++ lib/lp/bugs/javascript/tests/test_bug_notification_level.html	2011-07-06 01:29:45 +0000
@@ -5,8 +5,6 @@
      <!-- YUI 3.0 Setup -->
     <script type="text/javascript"
       src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -18,6 +16,10 @@
 
     <script type="text/javascript"
       src="../../../app/javascript/client.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/anim/anim.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/effects/effects.js"></script>
 
     <!-- The module under test -->
     <script type="text/javascript"

=== modified file 'lib/lp/bugs/javascript/tests/test_bug_subscription_portlet.html'
--- lib/lp/bugs/javascript/tests/test_bug_subscription_portlet.html	2011-06-21 05:37:38 +0000
+++ lib/lp/bugs/javascript/tests/test_bug_subscription_portlet.html	2011-07-06 01:29:45 +0000
@@ -5,8 +5,6 @@
      <!-- YUI 3.0 Setup -->
     <script type="text/javascript"
       src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -20,6 +18,14 @@
       src="../../../app/javascript/client.js"></script>
     <script type="text/javascript"
       src="../../../app/javascript/errors.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/anim/anim.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/effects/effects.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/formoverlay/formoverlay.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/overlay/overlay.js"></script>
 
     <!-- The module under test -->
     <script type="text/javascript"

=== modified file 'lib/lp/bugs/javascript/tests/test_filebug_dupfinder.html'
--- lib/lp/bugs/javascript/tests/test_filebug_dupfinder.html	2011-04-29 01:55:28 +0000
+++ lib/lp/bugs/javascript/tests/test_filebug_dupfinder.html	2011-07-06 01:29:45 +0000
@@ -5,8 +5,6 @@
     <!-- YUI 3.0 Setup -->
     <script type="text/javascript"
             src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-            src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
           href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -21,6 +19,10 @@
     <script type="text/javascript"
             src="../../../app/javascript/errors.js"></script>
 
+    <!-- Some required dependencies -->
+    <script type="text/javascript" src="../../../app/javascript/effects/effects.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/overlay/overlay.js"></script>
+
     <!-- The module under test -->
     <script type="text/javascript"
             src="../filebug_dupefinder.js"></script>

=== modified file 'lib/lp/bugs/javascript/tests/test_me_too.html'
--- lib/lp/bugs/javascript/tests/test_me_too.html	2011-02-28 00:54:30 +0000
+++ lib/lp/bugs/javascript/tests/test_me_too.html	2011-07-06 01:29:45 +0000
@@ -11,8 +11,6 @@
 
   <!-- Dependency -->
   <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
-  <script type="text/javascript"
     src="../../../../canonical/launchpad/icing/yui/attribute/attribute.js">
   </script>
   <script type="text/javascript"
@@ -22,14 +20,13 @@
     src="../../../../canonical/launchpad/icing/yui/oop/oop.js">
   </script>
   <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/overlay/overlay.js">
+    src="../../../app/javascript/overlay/overlay.js">
   </script>
   <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/choiceedit/choiceedit.js">
+    src="../../../app/javascript/choiceedit/choiceedit.js">
   </script>
   <script type="text/javascript"
     src="../../../app/javascript/client.js"></script>
-  <script type="text/javascript" src="../subscriber.js"></script>
 
   <!-- The module under test -->
   <script type="text/javascript" src="../bugtask_index.js"></script>

=== modified file 'lib/lp/bugs/javascript/tests/test_subscribers_list.html'
--- lib/lp/bugs/javascript/tests/test_subscribers_list.html	2011-07-06 01:29:44 +0000
+++ lib/lp/bugs/javascript/tests/test_subscribers_list.html	2011-07-06 01:29:45 +0000
@@ -5,8 +5,6 @@
      <!-- YUI 3.0 Setup -->
     <script type="text/javascript"
       src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -23,13 +21,23 @@
     <script type="text/javascript"
       src="../../../app/javascript/lp-names.js"></script>
     <script type="text/javascript"
+      src="../../../app/javascript/anim/anim.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/formoverlay/formoverlay.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/overlay/overlay.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/anim/anim.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/activator/activator.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/lazr/lazr.js"></script>
+    <script type="text/javascript"
       src="../../../app/javascript/picker_patcher.js"></script>
     <script type="text/javascript"
-      src="../../../app/javascript/lazr/picker/person_picker.js"></script>
-
-    <!-- Pre-requisite -->
+      src="../../../app/javascript/picker/picker.js"></script>
     <script type="text/javascript"
-      src="../subscriber.js"></script>
+      src="../../../app/javascript/picker/person_picker.js"></script>
 
     <!-- The module under test -->
     <script type="text/javascript"

=== modified file 'lib/lp/bugs/javascript/tests/test_subscription.html'
--- lib/lp/bugs/javascript/tests/test_subscription.html	2011-04-15 22:01:06 +0000
+++ lib/lp/bugs/javascript/tests/test_subscription.html	2011-07-06 01:29:45 +0000
@@ -5,8 +5,6 @@
      <!-- YUI 3.0 Setup -->
     <script type="text/javascript"
       src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -20,6 +18,14 @@
       src="../../../app/javascript/client.js"></script>
     <script type="text/javascript"
       src="../../../app/javascript/errors.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/anim/anim.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/effects/effects.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/formoverlay/formoverlay.js"></script>
+    <script type="text/javascript"
+      src="../../../app/javascript/overlay/overlay.js"></script>
 
     <!-- The module under test -->
     <script type="text/javascript"

=== modified file 'lib/lp/code/javascript/tests/test_branchdiff.html'
--- lib/lp/code/javascript/tests/test_branchdiff.html	2011-05-05 17:04:58 +0000
+++ lib/lp/code/javascript/tests/test_branchdiff.html	2011-07-06 01:29:45 +0000
@@ -6,13 +6,15 @@
 
   <!-- YUI 3.0 Setup -->
   <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <script type="text/javascript" src="../../../app/javascript/client.js"></script>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
-  <link rel="stylesheet" href="../../../../canonical/launchpad/icing/lazr/build/lazr-sam.css" />
+  <link rel="stylesheet" href="../../../../canonical/launchpad/icing/build/launchpad-sam.css" />
+
+  <script type="text/javascript"
+    src="../../../app/javascript/overlay/overlay.js"></script>
 
   <!-- The module under test -->
   <script type="text/javascript" src="../branchmergeproposal.diff.js"></script>

=== modified file 'lib/lp/code/javascript/tests/test_productseries-setbranch.html'
--- lib/lp/code/javascript/tests/test_productseries-setbranch.html	2010-11-10 15:33:47 +0000
+++ lib/lp/code/javascript/tests/test_productseries-setbranch.html	2011-07-06 01:29:45 +0000
@@ -6,12 +6,11 @@
 
   <!-- YUI 3.0 Setup -->
   <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
-  <script type="text/javascript" src="../../../../canonical/launchpad/javascript/lp/lp.js"></script>
+  <script type="text/javascript" src="../../../app/javascript/lp.js"></script>
 
   <!-- The module under test -->
   <script type="text/javascript" src="../productseries-setbranch.js"></script>

=== modified file 'lib/lp/registry/javascript/tests/test_distroseries.html'
--- lib/lp/registry/javascript/tests/test_distroseries.html	2011-03-18 12:24:01 +0000
+++ lib/lp/registry/javascript/tests/test_distroseries.html	2011-07-06 01:29:45 +0000
@@ -7,8 +7,6 @@
     <!-- YUI 3.0 Setup -->
     <script type="text/javascript"
             src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-            src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
           href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"
@@ -19,6 +17,13 @@
           href="../../../../canonical/launchpad/javascript/test.css" />
     <!-- Required modules -->
     <script type="text/javascript" src="../../../app/javascript/client.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/activator/activator.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/anim/anim.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/lazr/lazr.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/overlay/overlay.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/picker/picker.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/picker/person_picker.js"></script>
+    <script type="text/javascript" src="../../../app/javascript/picker_patcher.js"></script>
     <!-- The module under test -->
     <script type="text/javascript" src="../distroseries.js"></script>
     <!-- The test suite -->

=== modified file 'lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.html'
--- lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.html	2011-05-12 12:09:17 +0000
+++ lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.html	2011-07-06 01:29:45 +0000
@@ -5,7 +5,6 @@
 
   <!-- Required js modules -->
   <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <script type="text/javascript" src="../../../app/javascript/client.js"></script>
   <script type="text/javascript" src="../../../soyuz/javascript/base.js"></script>
   <script type="text/javascript" src="../../../soyuz/javascript/lp_dynamic_dom_updater.js"></script>
@@ -14,7 +13,7 @@
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
-  <link rel="stylesheet" href="../../../../canonical/launchpad/icing/style-3-0.css.in" />
+  <link rel="stylesheet" href="../../../../canonical/launchpad/icing/style-3-0.css" />
 
   <!-- The module under test -->
   <script type="text/javascript" src="../distroseriesdifferences_details.js"></script>

=== modified file 'lib/lp/registry/javascript/tests/test_milestone_table.html'
--- lib/lp/registry/javascript/tests/test_milestone_table.html	2010-11-23 14:18:07 +0000
+++ lib/lp/registry/javascript/tests/test_milestone_table.html	2011-07-06 01:29:45 +0000
@@ -5,12 +5,14 @@
 
   <!-- YUI 3.0 Setup -->
   <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-  <script type="text/javascript" src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
 
+  <script type="text/javascript"
+    src="../../../app/javascript/anim/anim.js"></script>
+
   <!-- The module under test -->
   <script type="text/javascript" src="../milestonetable.js"></script>
 

=== modified file 'lib/lp/registry/javascript/tests/test_structural_subscription.html'
--- lib/lp/registry/javascript/tests/test_structural_subscription.html	2011-06-07 21:15:48 +0000
+++ lib/lp/registry/javascript/tests/test_structural_subscription.html	2011-07-06 01:29:45 +0000
@@ -8,26 +8,17 @@
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/icing/yui/cssbase/base.css"/>
-  <link rel="stylesheet"
-      href="../../../../canonical/launchpad/icing/lazr/build/testing/assets/testlogger.css"/>
   <link rel="stylesheet" href="../../../../canonical/launchpad/javascript/test.css" />
 
   <!-- Dependency -->
   <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
-  <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/testing/testing.js"></script>
-  <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/testing/mockio.js"></script>
-  <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/overlay/overlay.js">
-  </script>
-  <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/formoverlay/formoverlay.js">
-  </script>
-  <script type="text/javascript"
-    src="../../../../canonical/launchpad/icing/lazr/build/choiceedit/choiceedit.js">
-  </script>
+    src="../../../app/javascript/anim/anim.js"></script>
+  <script type="text/javascript"
+    src="../../../app/javascript/effects/effects.js"></script>
+  <script type="text/javascript"
+    src="../../../app/javascript/formoverlay/formoverlay.js"></script>
+  <script type="text/javascript"
+    src="../../../app/javascript/overlay/overlay.js"></script>
   <script type="text/javascript"
     src="../../../app/javascript/client.js"></script>
   <script type="text/javascript"

=== modified file 'lib/lp/scripts/utilities/js/jsbuild.py'
--- lib/lp/scripts/utilities/js/jsbuild.py	2011-06-30 11:10:08 +0000
+++ lib/lp/scripts/utilities/js/jsbuild.py	2011-07-06 01:29:45 +0000
@@ -15,14 +15,13 @@
 
 HERE = os.path.dirname(__file__)
 BUILD_DIR = os.path.normpath(os.path.join(HERE, '..', '..', '..', 'build'))
-DEFAULT_SRC_DIR = os.path.normpath(os.path.join(HERE, '..', '..', '..', 'app', 'javascript', 'lazr'))
+DEFAULT_SRC_DIR = os.path.normpath(os.path.join(
+    HERE, '..', '..', '..', 'app', 'javascript'))
 
 ESCAPE_STAR_PROPERTY_RE = re.compile(r'\*([a-zA-Z0-9_-]+):')
 UNESCAPE_STAR_PROPERTY_RE = re.compile(r'([a-zA-Z0-9_-]+)_ie_star_hack:')
 URL_RE = re.compile("url\([ \"\']*([^ \"\']+)[ \"\']*\)")
 
-from jsmin import JavascriptMinify
-
 
 def relative_path(from_file, to_file):
     """Return the relative path between from_file and to_file."""
@@ -77,7 +76,8 @@
                 content = fh.read()
                 fh.close()
                 try:
-                    target_fh.write(self.filter_file_content(content, src_file))
+                    target_fh.write(
+                        self.filter_file_content(content, src_file))
                 except Exception:
                     os.remove(self.target_file)
                     raise
@@ -147,6 +147,7 @@
             src_dir = os.path.dirname(path)
             relative_parts = relative_path(self.target_file, src_dir).split(
                 os.path.sep)
+
             def fix_relative_url(match):
                 url = match.group(1)
                 # Don't modify absolute URLs or 'data:' urls.
@@ -185,8 +186,8 @@
 
 class Builder:
 
-    def __init__(self, name='lazr', build_dir=BUILD_DIR, src_dir=DEFAULT_SRC_DIR,
-                 extra_files=None, exclude_regex='', file_type='raw'):
+    def __init__(self, name='launchpad', build_dir=BUILD_DIR,
+                 src_dir=DEFAULT_SRC_DIR, extra_files=None):
         """Create a new Builder.
 
         :param name: The name of the package we are building. This will
@@ -195,13 +196,6 @@
         :param src_dir: The directory containing the source files.
         :param extra_files: List of files that should be bundled in the
             standalone file.
-        :param exclude_regex: A regex that will exclude file paths from the
-            final rollup.  -min and -debug versions will still be built.
-        :param file_type: A string specifying which type of files to include
-            in the final rollup.  Default is to use the raw, unmodified JS
-            file.  Possible values are 'raw', 'min', and 'debug'.  File types
-            are identified by their basename suffix: foo.js, foo-min.js,
-            foo-debug.js, etc.
         """
         self.name = name
         self.build_dir = build_dir
@@ -218,11 +212,6 @@
         else:
             self.extra_files = extra_files
 
-        self.exclusion_regex = exclude_regex
-        self.file_type = file_type
-
-        self.log("Using filter: " + self.file_type)
-
     def log(self, msg):
         sys.stdout.write(msg + '\n')
 
@@ -231,13 +220,6 @@
         sys.stderr.write(msg + '\n')
         sys.exit(1)
 
-    def file_is_excluded(self, filepath):
-        """Is the given file path excluded from the rollup process?"""
-        if not self.exclusion_regex:
-            # Include everything.
-            return False
-        return re.search(self.exclusion_regex, filepath)
-
     def ensure_build_directory(self, path):
         """Make sure that the named relative path is a directory."""
         target_dir = os.path.join(self.build_dir, path)
@@ -260,34 +242,6 @@
             self.log('Linking %s -> %s' % (src, dst))
             os.symlink(src, dst)
 
-    def link_and_minify(self, component, js_file):
-        """Create raw, debug and min version of js_file."""
-        component_dir = os.path.join(self.build_dir, component)
-        basename = os.path.splitext(os.path.basename(js_file))[0]
-
-        raw_file = os.path.join(component_dir, basename + '.js')
-        rel_js_file = relative_path(raw_file, js_file)
-        self.ensure_link(rel_js_file, raw_file)
-
-        debug_file = os.path.join(component_dir, basename + '-debug.js')
-        self.ensure_link(rel_js_file, debug_file)
-
-        min_file = os.path.join(component_dir, basename + '-min.js')
-        if (not os.path.exists(min_file)
-            or os.stat(min_file).st_mtime < os.stat(js_file).st_mtime):
-            self.log("Minifying %s into %s." % (js_file, min_file))
-            js_in = open(js_file, 'r')
-            min_out = open(min_file, 'w')
-            minifier = JavascriptMinify()
-            minifier.minify(js_in, min_out)
-            js_in.close()
-            min_out.close()
-
-        self.built_files.append(
-            {'raw': raw_file,
-             'debug': debug_file,
-             'min': min_file})
-
     def build_assets(self, component_name):
         """Build a component's "assets" directory."""
         join = os.path.join
@@ -369,25 +323,6 @@
                     target_skin_file))
                 combined_css.update()
 
-    def update_combined_js_file(self):
-        # Compile all the files in one JS file.  Apply the filter to see
-        # which file extensions we should include.
-        build_file = os.path.join(self.build_dir, "%s.js" % self.name)
-
-        included_files = []
-        extra_files = [f for f in self.extra_files if f.endswith('.js')]
-        built_files = [f[self.file_type] for f in self.built_files]
-
-        included_files.extend(extra_files)
-        included_files.extend(built_files)
-        files_to_combine = [f for f in included_files
-                            if not self.file_is_excluded(f)]
-
-        combined_js = JSComboFile(files_to_combine, build_file)
-        if combined_js.needs_update():
-            self.log('Updating %s...' % build_file)
-            combined_js.update()
-
     def update_combined_css_skins(self):
         """Create one combined CSS file per skin."""
         extra_css_files = [f for f in self.extra_files if f.endswith('.css')]
@@ -401,27 +336,12 @@
                 self.log('Updating %s...' % skin_build_file)
                 combined_css.update()
 
-    def find_components(self):
-        """Find all of the project sub-component names and directories."""
+    def do_build(self):
         for name in os.listdir(self.src_dir):
             path = os.path.join(self.src_dir, name)
             if not os.path.isdir(path):
                 continue
-            yield name, path
-
-    def do_build(self):
-        for name, cpath in self.find_components():
-            files_to_link = glob(os.path.join(cpath, '*.js'))
-            if len(files_to_link) == 0:
-                continue
-            self.ensure_build_directory(name)
-
-            for js_file in files_to_link:
-                self.link_and_minify(name, js_file)
-
             self.build_assets(name)
-
-        self.update_combined_js_file()
         self.update_combined_css_skins()
 
 
@@ -433,35 +353,24 @@
             "Create a build directory of CSS/JS files. "
             ))
     parser.add_option(
-        '-n', '--name', dest='name', default='lazr',
+        '-n', '--name', dest='name', default='launchpad',
         help=('The basename of the generated compilation file. Defaults to '
-            '"lazr".'))
+            '"launchpad".'))
     parser.add_option(
         '-b', '--builddir', dest='build_dir', default=BUILD_DIR,
         help=('The directory that should contain built files.'))
     parser.add_option(
         '-s', '--srcdir', dest='src_dir', default=DEFAULT_SRC_DIR,
         help=('The directory containing the src files.'))
-    parser.add_option(
-        '-x', '--exclude', dest='exclude', default='',
-        metavar='REGEX',
-        help=('Exclude any files that match the given regular expression.'))
-    parser.add_option(
-        '-f', '--filetype', dest='file_type', default='min',
-        help=('Only bundle files in the source directory that match the '
-              'specified file-type filter. Possible values are '
-              '[min, raw, debug]. [default: %default]'))
     return parser.parse_args()
 
 
 def main():
-    options, extra= get_options()
+    options, extra = get_options()
 
     Builder(
        name=options.name,
        build_dir=options.build_dir,
        src_dir=options.src_dir,
        extra_files=extra,
-       exclude_regex=options.exclude,
-       file_type=options.file_type,
        ).do_build()

=== modified file 'lib/lp/translations/javascript/tests/test_sourcepackage_sharing_details.html'
--- lib/lp/translations/javascript/tests/test_sourcepackage_sharing_details.html	2011-04-14 19:33:40 +0000
+++ lib/lp/translations/javascript/tests/test_sourcepackage_sharing_details.html	2011-07-06 01:29:45 +0000
@@ -3,8 +3,6 @@
     <title>Launchpad translationsharingconfig</title>
     <!-- YUI 3.0 Setup -->
     <script type="text/javascript" src="../../../../canonical/launchpad/icing/yui/yui/yui.js"></script>
-    <script type="text/javascript"
-      src="../../../../canonical/launchpad/icing/lazr/build/lazr.js"></script>
     <link rel="stylesheet"
       href="../../../../canonical/launchpad/icing/yui/cssreset/reset.css"/>
     <link rel="stylesheet"