[CB-315] [weinre] generate valid Apache release artifact names

- changed the way the archives are built, names, etc

- updated a lot of the docs to reference those changes

- added package.json files back to node_modules pre-reqs.
  This was a mistake in my .gitignore, because I want to
  exclude the package.json file I build 'live', but the
  gitignore rule was keeping the pre-req files from being
  stored!  This may have eventually caused havoc when you
  try to later update the pre-reqs.
diff --git a/README.md b/README.md
index 5523b53..b13cada 100644
--- a/README.md
+++ b/README.md
@@ -17,9 +17,9 @@
  * under the License.
 -->
 
-weinre is WEb INspector REmote. 
-Pronounced like the word "winery". 
-Or maybe like the word "weiner". 
+weinre is WEb INspector REmote.
+
+Pronounced like the word "winery". Or maybe like the word "weiner". 
 Who knows, really.
 
 weinre is a debugger for web pages, 
@@ -28,8 +28,7 @@
 to allow you debug web pages on a mobile device such as a phone.
 
 For more information on weinre:
-[http://http://incubator.apache.org/callback/](http://incubator.apache.org/callback/)
-
+[http://http://incubator.apache.org/cordova/](http://incubator.apache.org/cordova/)
 
 weinre source
 -------------
@@ -49,24 +48,29 @@
 building weinre
 ---------------
 
-The weinre build is currently run on a Mac OS X 10.7 laptop.  It also runs on Apache
-continuous integration servers running Linux.  The build is not typically run on Windows,
-so if you have problems with that, please log an issue.  
+The weinre build is currently run on a Mac OS X 10.7 laptop.  It also runs on 
+Apache continuous integration servers running Linux.  The build is not 
+typically run on Windows, so if you have problems with that, please log an 
+issue.  
 
 The weinre build pre-req's the following tools:
 
 * node.js - [http://nodejs.org/](http://nodejs.org/)
-* npm - should be shipped with node.js, on Linux may need to be installed as a separate
-package 
 * ant - [http://ant.apache.org/](http://ant.apache.org/)
 
-Before doing a weinre build, you will need to create the file
-`weinre.build/personal.properties`.  Use the `sample.personal.properties` as a template.
-The build should fail if this file is not available.
+To update the npm-based pre-reqs, you will also need:
 
-To update the version label of weinre, edit the file `weinre.build/build.properties`.
-If the version has a `-pre` suffix, this triggers the build to artifacts with
-timestamped names.  For an 'official' build, do not use the `-pre` suffix.
+* npm - should be shipped with node.js, on Linux may need to be installed as a 
+separate package 
+
+Before doing a weinre build, you will need to create the file
+`weinre.build/personal.properties`.  Use the `sample.personal.properties` as a 
+template. The build should fail if this file is not available.
+
+To update the version label of weinre, edit the file 
+`weinre.build/build.properties`.  If the version has a `-pre` suffix, this 
+triggers the build to artifacts with timestamped names.  For an 'official' 
+build, do not use the `-pre` suffix.
 
 There are two ways to build weinre:
 
@@ -85,19 +89,19 @@
 ### to perform the full build: ###
 
 * run: `cd weinre.build`
-* run: `ant`
+* run: `ant build-archives`
 
-This will run the development build (see below), and then create zip archives of
-the build in the `weinre.build/out/archives` directory.
+This will run the development build (see below), and then create zip archives 
+of the build in the `weinre.build/out/archives` directory.
 
 ### to perform the development build: ###
 
 * run: `cd weinre.build`
-* run: `ant build-dev`
+* run: `ant`
 
-This will populate a number of resources in the `weinre.server` directory, so that
-you can run weinre directly from that directory for testing.  It does not build
-the archives.
+This will populate a number of resources in the `weinre.server` directory, so 
+that you can run weinre directly from that directory for testing.  It does not 
+build the archives.
 
 ### performing a clean build: ###
 
@@ -108,43 +112,47 @@
 ### to run the output of the development build: ###
 
 * run: `cd weinre.server`
-* run: `node weinre [your flavorite options]`
+* run: `./weinre [your flavorite options]`
 
 ### other fun development-time hacks ###
 
 If you have the [wr tool](https://github.com/pmuellr/wr) installed, there are
-two `.wr` files available to run the two builds.  If you run `wr` in the top-level
-directory, a full build is performed when the source changes.  If you run `wr` in the
-`weinre.build` directory, a development-time build is performed.
+two `.wr` files available to run the two builds.  If you run `wr` in the 
+top-level directory, a full build is performed when the source changes.  If you 
+run `wr` in the `weinre.build` directory, a development-time build is 
+performed.
 
-The build is growl-enabled, so you can see a quick message when the build completes.
+The build is growl-enabled, so you can see a quick message when the build 
+completes.
 
 The command `weinre.server/weinre-hot` makes use of
 [node-supervisor](https://github.com/isaacs/node-supervisor) to re-launch the
 weinre server generated by the development build, whenever a weinre build
 completes.
 
-Putting this altogether, you can open two terminal windows, run `wr` in the `weinre.build`
-directory to have a development build run whenever you change the source, and then run `weinre-hot` in the `weinre.server` directory to have the weinre server restart whenever a build completes, getting a growl notification at that time.
+Putting this altogether, you can open two terminal windows, run `wr` in the 
+`weinre.build` directory to have a development build run whenever you change 
+the source, and then run `weinre-hot` in the `weinre.server` directory to have 
+the weinre server restart whenever a build completes, getting a growl 
+notification at that time.
 
 updating 3rd party libraries
 -----------------------------
 
-> **IMPORTANT** - All 3rd party libraries are stored in the SCM, so that the build does
-require 3rd party packages to be downloaded.  As such, these files need to be ok to 
-use and store in the SCM, given their licenses.  
-If you're adding or updating a 3rd party library, make
-sure the license is acceptable, and add/update the license in the top-level `LICENSE`
-file.
+> **IMPORTANT** - All 3rd party libraries are stored in the SCM, so that the 
+build does not require 3rd party packages to be downloaded.  As such, these 
+files need to be ok to use and store in the SCM, given their licenses.  If 
+you're adding or updating a 3rd party library, make sure the license is 
+acceptable, and add/update the license in the top-level `LICENSE` file.
 
-All of the 3rd party dependencies used with weinre are stored in one of two directories:
+All of the 3rd party dependencies used with weinre are stored in one of two 
+directories:
 
 * `weinre.build/vendor` - contains libraries used in the client and/or target,
 as well as libraries used by the build itself
 
 * `weinre.server/node_modules` - contains npm packages used by the weinre.server
 
-
 To update the files in `weinre.build/vendor`:
 
 * edit the file `weinre.build/vendor.properties` as appropriate
diff --git a/weinre.build/build-dev.sh b/weinre.build/build-dev.sh
index 2d8991f..70c9b7a 100755
--- a/weinre.build/build-dev.sh
+++ b/weinre.build/build-dev.sh
@@ -22,4 +22,4 @@
 # this script builds enough of weinre to test at development time
 
 cd `dirname $0`
-ant build-dev
\ No newline at end of file
+ant build
\ No newline at end of file
diff --git a/weinre.build/build.xml b/weinre.build/build.xml
index f5305c3..f8eb457 100644
--- a/weinre.build/build.xml
+++ b/weinre.build/build.xml
@@ -17,7 +17,7 @@
  * under the License.
 -->
 
-<project name="build" default="build" basedir=".">
+<project name="build" default="build-help" basedir=".">
 
     <!-- ============================================================
          set properties
@@ -38,20 +38,68 @@
         <format property="TSTAMP_STARTED" pattern="HH:mm:ss"/>
     </tstamp>
 
+    <!--
     <tstamp>
-        <format property="BUILD_DATE" pattern="yyyy-MM-dd--HH-mm-ss" timezone="GMT"/>
+        <format property="BUILD_DATE" pattern="yyyy-MM-dd__HH-mm-ss" timezone="GMT"/>
     </tstamp>
+    -->
+    
+    <exec executable="node" outputproperty="BUILD_DATE">
+        <arg value="-e"/>
+        <arg value="console.log((new Date()).valueOf().toString(36).toUpperCase())"/>
+    </exec>
 
-    <condition property="BUILD_VERSION" value="${WEINRE_VERSION}-${BUILD_DATE}">
+    <condition property="BUILD_VERSION" value="${WEINRE_VERSION}-${BUILD_DATE}-incubating">
         <matches pattern=".*pre$" string="${WEINRE_VERSION}"/>
     </condition>
     
-    <condition property="BUILD_VERSION" value="${WEINRE_VERSION}">
+    <condition property="BUILD_VERSION" value="${WEINRE_VERSION}-incubating">
         <not>
             <matches pattern=".*pre$" string="${WEINRE_VERSION}"/>
         </not>
     </condition>
     
+    <property name="ARCH-SRC" value="apache-cordova-weinre-${BUILD_VERSION}-src"/>
+    <property name="ARCH-BIN" value="apache-cordova-weinre-${BUILD_VERSION}-bin"/>
+    <property name="ARCH-DOC" value="apache-cordova-weinre-${BUILD_VERSION}-doc"/>
+
+    <!-- ============================================================
+         print some help
+         ============================================================ -->
+
+    <target name="help">
+        <echo>
+ant targets available:
+   [default]         - runs `build-help`
+   build             - runs a development-time build
+   build-archives    - runs `build-clean`, then builds archives
+   build-archives-ck - runs `build-archives`, then builds
+                       checksum files
+   build-help        - prints a line about available help, then
+                       runs `build`
+   build-clean       - runs `clean` then `build`
+   clean             - removes transient build files
+   
+the file `personal.properties` must be available in the same 
+directory as this ant file.  Use the file
+`sample.personal.properties` as a template.
+
+To update the weinre dependencies, use
+   ant -f update-vendor.xml
+</echo>
+    </target>
+
+    
+    <!-- ============================================================
+         do a build, but print message about help
+         ============================================================ -->
+
+    <target name="build-help">
+        <echo message="to see commands available, use `ant help`"/>
+        <antcall target="build"/>
+    </target>
+
+    
     <!-- ============================================================
          do a clean build
          ============================================================ -->
@@ -60,17 +108,6 @@
     </target>
 
     <!-- ============================================================
-         main entry point
-         ============================================================ -->
-
-    <target name="build" depends="build-dev">
-        <antcall target="build-doc"/>
-        <antcall target="build-archives"/>
-
-        <echo>full ant build completed successfully</echo>
-    </target>
-
-    <!-- ============================================================
          clean
          ============================================================ -->
 
@@ -85,7 +122,7 @@
          development-time build
          ============================================================ -->
 
-    <target name="build-dev">
+    <target name="build">
         <fail>
             <condition>
                 <not>
@@ -104,17 +141,44 @@
             <fileset dir="${OUT}" includes="**/*" excludes="build-done.txt"/>
         </delete>        
         
+        <exec 
+            executable           = "git" 
+            outputproperty       = "git-log" 
+            failifexecutionfails = "false"
+            >
+            <arg line="log -1 --pretty=oneline"/>
+        </exec>
+
+        <condition property="git-log" value="no git status available">
+            <not>
+                <isset property="git-log"/>
+            </not>
+        </condition>
+        
         <property
             name  = "build-info-text"
             value = "weinre build ${BUILD_VERSION} by ${BUILDER}"
         />
-
-        <echo file="${OUT}/build-info.txt" message="${build-info-text}"/>
+        
+        <concat 
+            append      = "no"  
+            destfile    = "${OUT}/build-info.txt"
+            >${build-info-text}
+</concat> <!-- keep this outdented, since Ant is so wonderful -->
+            
+        <concat 
+            append      = "yes" 
+            fixlastline = "yes"  
+            eol         = "lf"
+            destfile    = "${OUT}/build-info.txt"
+            >git: ${git-log}
+</concat> <!-- keep this outdented, since Ant is so wonderful -->
 
         <antcall target="build-web"/>
         <antcall target="build-json-idl"/>
         <antcall target="build-client"/>
         <antcall target="build-target"/>
+        <antcall target="build-doc"/>
 
         <tstamp>
             <format property="TSTAMP_FINISHED" pattern="HH:mm:ss"/>
@@ -153,21 +217,33 @@
         <mkdir  dir="${TMP}/modules/weinre/target" />
 
         <echo message="compiling CoffeeScript files in: ${PROJECT_WEB}/modules/weinre/client"/>
-        <exec executable="sh" failonerror="true" failifexecutionfails="true">
-            <arg value="-c"/>
-            <arg value="../${PROJECT_SERVER}/node_modules/.bin/coffee --compile --bare --output ${TMP}/modules/weinre/client ../${PROJECT_WEB}/modules/weinre/client/*.coffee"/>
+        <exec executable="node" failonerror="true" failifexecutionfails="true">
+            <arg value="../${PROJECT_SERVER}/node_modules/coffee-script/bin/coffee"/>
+            <arg value="--compile"/>
+            <arg value="--bare"/>
+            <arg value="--output"/>
+            <arg value="${TMP}/modules/weinre/client"/>
+            <arg value="../${PROJECT_WEB}/modules/weinre/client"/>
         </exec>
 
         <echo message="compiling CoffeeScript files in: ${PROJECT_WEB}/modules/weinre/common"/>
-        <exec executable="sh" failonerror="true" failifexecutionfails="true">
-            <arg value="-c"/>
-            <arg value="../${PROJECT_SERVER}/node_modules/.bin/coffee --compile --bare --output ${TMP}/modules/weinre/common ../${PROJECT_WEB}/modules/weinre/common/*.coffee"/>
+        <exec executable="node" failonerror="true" failifexecutionfails="true">
+            <arg value="../${PROJECT_SERVER}/node_modules/coffee-script/bin/coffee"/>
+            <arg value="--compile"/>
+            <arg value="--bare"/>
+            <arg value="--output"/>
+            <arg value="${TMP}/modules/weinre/common"/>
+            <arg value="../${PROJECT_WEB}/modules/weinre/common"/>
         </exec>
 
         <echo message="compiling CoffeeScript files in: ${PROJECT_WEB}/modules/weinre/target"/>
-        <exec executable="sh" failonerror="true" failifexecutionfails="true">
-            <arg value="-c"/>
-            <arg value="../${PROJECT_SERVER}/node_modules/.bin/coffee --compile --bare --output ${TMP}/modules/weinre/target ../${PROJECT_WEB}/modules/weinre/target/*.coffee"/>
+        <exec executable="node" failonerror="true" failifexecutionfails="true">
+            <arg value="../${PROJECT_SERVER}/node_modules/coffee-script/bin/coffee"/>
+            <arg value="--compile"/>
+            <arg value="--bare"/>
+            <arg value="--output"/>
+            <arg value="${TMP}/modules/weinre/target"/>
+            <arg value="../${PROJECT_WEB}/modules/weinre/target"/>
         </exec>
 
         <echo message="transportd-izing modules"/>
@@ -363,7 +439,7 @@
     <!-- ============================================================
          build the archives
          ============================================================ -->
-    <target name="build-archives">
+    <target name="build-archives" depends="build-clean">
 
         <!-- =================================== -->
         <delete dir="${OUT}/archives"/>
@@ -371,75 +447,120 @@
 
         <delete dir="${OUT}/files"/>
 
-        <delete dir="${OUT}/files/weinre-node"/>
-        <mkdir  dir="${OUT}/files/weinre-node"/>
-        <copy todir="${OUT}/files/weinre-node" file="${OUT}/build-info.txt"/>
-        <copy todir="${OUT}/files/weinre-node" file="../LICENSE"/>
-        <copy todir="${OUT}/files/weinre-node" file="../NOTICE"/>
-        <copy todir="${OUT}/files/weinre-node">
-            <fileset dir="../${PROJECT_SERVER}"/>
+        <delete dir="${OUT}/files/${ARCH-BIN}"/>
+        <mkdir  dir="${OUT}/files/${ARCH-BIN}"/>
+        <copy todir="${OUT}/files/${ARCH-BIN}" file="${OUT}/build-info.txt"/>
+        <copy todir="${OUT}/files/${ARCH-BIN}" file="../LICENSE"/>
+        <copy todir="${OUT}/files/${ARCH-BIN}" file="../NOTICE"/>
+        <copy todir="${OUT}/files/${ARCH-BIN}">
+            <fileset dir="../${PROJECT_SERVER}">
+                <exclude name="weinre-hot"/>
+            </fileset>
         </copy>
+        <chmod file="${OUT}/files/${ARCH-BIN}/weinre" perm="+x"/>
 
         <!-- ant's zip task doesn't preserve permission bits -->
         <exec executable="zip" dir="${OUT}/files">
             <arg value="-q"/>
             <arg value="-r"/>
-            <arg value="../archives/weinre-node-${BUILD_VERSION}.zip"/>
-            <arg value="weinre-node"/>
+            <arg value="../archives/${ARCH-BIN}.zip"/>
+            <arg value="${ARCH-BIN}"/>
         </exec>
 
         <exec executable="tar" dir="${OUT}/files">
             <arg value="-czf"/>
-            <arg value="../archives/weinre-node-${BUILD_VERSION}.tar.gz"/>
-            <arg value="weinre-node"/>
+            <arg value="../archives/${ARCH-BIN}.tar.gz"/>
+            <arg value="${ARCH-BIN}"/>
         </exec>
 
         <!-- =================================== -->
-        <delete dir="${OUT}/files/weinre-doc"/>
-        <mkdir  dir="${OUT}/files/weinre-doc"/>
-        <copy todir="${OUT}/files/weinre-doc" file="${OUT}/build-info.txt" />
-        <copy todir="${OUT}/files/weinre-doc" file="../LICENSE"/>
-        <copy todir="${OUT}/files/weinre-doc" file="../NOTICE"/>
-        <copy todir="${OUT}/files/weinre-doc">
+        <delete dir="${OUT}/files/${ARCH-DOC}"/>
+        <mkdir  dir="${OUT}/files/${ARCH-DOC}"/>
+        <copy todir="${OUT}/files/${ARCH-DOC}" file="${OUT}/build-info.txt" />
+        <copy todir="${OUT}/files/${ARCH-DOC}" file="../LICENSE"/>
+        <copy todir="${OUT}/files/${ARCH-DOC}" file="../NOTICE"/>
+        <copy todir="${OUT}/files/${ARCH-DOC}">
             <fileset dir="${WEB}/doc"/>
         </copy>
 
+        <copy todir="${OUT}/archives/doc">
+            <fileset dir="${OUT}/files/${ARCH-DOC}"/>
+        </copy>
+
         <!-- ant's zip task doesn't preserve permission bits -->
         <exec executable="zip" dir="${OUT}/files">
             <arg value="-q"/>
             <arg value="-r"/>
-            <arg value="../archives/weinre-doc-${BUILD_VERSION}.zip"/>
-            <arg value="weinre-doc"/>
+            <arg value="../archives/${ARCH-DOC}.zip"/>
+            <arg value="${ARCH-DOC}"/>
+        </exec>
+
+        <exec executable="tar" dir="${OUT}/files">
+            <arg value="-czf"/>
+            <arg value="../archives/${ARCH-DOC}.tar.gz"/>
+            <arg value="${ARCH-DOC}"/>
         </exec>
 
         <!-- =================================== -->
-        <delete dir="${OUT}/files/weinre-src"/>
-        <mkdir  dir="${OUT}/files/weinre-src"/>
-        <exec executable="git" dir="..">
-            <arg value="archive"/>
-            <arg value="--format=zip"/>
-            <arg value="--prefix=weinre-src/"/>
-            <arg value="--output=${PROJECT_BUILD}/${TMP}/weinre-src.zip"/>
-            <arg value="HEAD"/>
-        </exec>
-
-        <exec executable="unzip" dir="${OUT}/files">
-            <arg value="-q"/>
-            <arg value="../../${TMP}/weinre-src.zip"/>
-        </exec>
+        <delete dir="${OUT}/files/${ARCH-SRC}"/>
+        <mkdir  dir="${OUT}/files/${ARCH-SRC}"/>
+        <copy todir="${OUT}/files/${ARCH-SRC}" file="${OUT}/build-info.txt" />
         
-        <copy todir="${OUT}/files/weinre-src" file="${OUT}/build-info.txt" />
+        <copy todir="${OUT}/files/${ARCH-SRC}" preservelastmodified="yes">
+            <fileset dir="..">
+                <exclude name="weinre.build/bin/**"/>
+                <exclude name="weinre.build/cached/**"/>
+                <exclude name="weinre.build/out/**"/>
+                <exclude name="weinre.build/tmp/**"/>
+                <exclude name="weinre.build/personal.properties"/>
 
-        <!-- ant's zip task doesn't preserve permission bits -->
+                <exclude name="weinre.server/tmp/**"/>
+                <exclude name="weinre.server/web/**"/>
+            </fileset>
+        </copy>
+
         <exec executable="zip" dir="${OUT}/files">
             <arg value="-q"/>
             <arg value="-r"/>
-            <arg value="../archives/weinre-src-${BUILD_VERSION}.zip"/>
-            <arg value="weinre-src"/>
+            <arg value="../archives/${ARCH-SRC}.zip"/>
+            <arg value="${ARCH-SRC}"/>
         </exec>
 
+        <exec executable="tar" dir="${OUT}/files">
+            <arg value="-czf"/>
+            <arg value="../archives/${ARCH-SRC}.tar.gz"/>
+            <arg value="${ARCH-SRC}"/>
+        </exec>
+
+    </target>
+
+
+    <!-- ============================================================
+         build-archives-checksums
+         ============================================================ -->
+
+    <target name="build-archives-ck" depends="build-archives">
+        
+        <checksum file="${OUT}/archives/${ARCH-BIN}.zip"    algorithm="MD5"/>
+        <checksum file="${OUT}/archives/${ARCH-DOC}.zip"    algorithm="MD5"/>
+        <checksum file="${OUT}/archives/${ARCH-SRC}.zip"    algorithm="MD5"/>
+
+        <checksum file="${OUT}/archives/${ARCH-BIN}.tar.gz" algorithm="MD5"/>
+        <checksum file="${OUT}/archives/${ARCH-DOC}.tar.gz" algorithm="MD5"/>
+        <checksum file="${OUT}/archives/${ARCH-SRC}.tar.gz" algorithm="MD5"/>
+
+        <checksum file="${OUT}/archives/${ARCH-BIN}.zip"    algorithm="SHA1"/>
+        <checksum file="${OUT}/archives/${ARCH-DOC}.zip"    algorithm="SHA1"/>
+        <checksum file="${OUT}/archives/${ARCH-SRC}.zip"    algorithm="SHA1"/>
+
+        <checksum file="${OUT}/archives/${ARCH-BIN}.tar.gz" algorithm="SHA1"/>
+        <checksum file="${OUT}/archives/${ARCH-DOC}.tar.gz" algorithm="SHA1"/>
+        <checksum file="${OUT}/archives/${ARCH-SRC}.tar.gz" algorithm="SHA1"/>
+
         <!-- =================================== -->
+        <!--
         <delete dir="${OUT}/files"/>
+        -->
 
     </target>
 
diff --git a/weinre.doc/Building.body.html b/weinre.doc/Building.body.html
index 2425714..40e79a2 100644
--- a/weinre.doc/Building.body.html
+++ b/weinre.doc/Building.body.html
@@ -17,10 +17,27 @@
  * under the License.
 -->
 
-<p>The source repository for weinre is maintained at
-<a href="https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-weinre.git">Apache</a>.
+<p>The source repository for weinre is maintained at Apache.  See the
+archives information on the <a href="Installing.html">Installing</a>
+page for more information on downloading a source archive.
+
+<p>If you'd prefer to obtain the source via git, you can use one of the
+following repos:
+
+<ul>
+<li>Apache repo: <td><a href="https://git-wip-us.apache.org/repos/asf/incubator-cordova-weinre.git">https://git-wip-us.apache.org/repos/asf/incubator-cordova-weinre.git</a>
+<li>GitHub repo: <td><a href="https://github.com/apache/incubator-cordova-weinre">https://github.com/apache/incubator-cordova-weinre</a>
+</ul>
+
+<p>The Apache repo is the canonical repo. The url can be used in a web
+browser, or as the argument of a <tt>git clone</tt> command.
+
+<p>The GitHub repo is a clone of the Apache repo, and automatically shadowed
+at some regular interval.  The url is the web view of the repo, from 
+which you can obtain a url to use with <tt>git clone</tt>.
 
 <p>See the file 
 <tt><a href="https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-weinre.git;a=blob;f=README.md;hb=HEAD">README.md<a/></tt> 
 in the top-most directory of the source distribution for more instructions on
-how to perform a build.
+how to perform a build.  A <a href="https://github.com/apache/incubator-cordova-weinre/blob/master/README.md">markdown-processed version of the README file
+is available on GitHub</a>.
diff --git a/weinre.doc/ChangeLog.body.html b/weinre.doc/ChangeLog.body.html
index 37bca7c..ed24272 100644
--- a/weinre.doc/ChangeLog.body.html
+++ b/weinre.doc/ChangeLog.body.html
@@ -23,7 +23,7 @@
 <p><a href="https://github.com/callback/callback-weinre/downloads">https://github.com/callback/callback-weinre/downloads</a>
 
 <!-- ======================================================================= -->
-<h2>2012/??/?? - version 1.7.0</h2>
+<h2>2012/??/?? - version 2.0.0</h2>
 
 <ul>
 
diff --git a/weinre.doc/Home.body.html b/weinre.doc/Home.body.html
index fd0638a..075ebec 100644
--- a/weinre.doc/Home.body.html
+++ b/weinre.doc/Home.body.html
@@ -32,8 +32,10 @@
 <p>Interesting places to visit:
 <table>
 <tr><td>- videos at YouTube:               <td><a href="http://www.youtube.com/results?search_query=weinre">http://www.youtube.com/results?search_query=weinre</a>
-<tr><td>- this documentation at Apache:    <td>[TBD]</a>
-<tr><td>- source at GitHub:                <td><a href="https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-weinre.git;a=summary">https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-weinre.git;a=summary</a>
+<tr><td>- this documentation at Apache:    <td><a href="http://people.apache.org/~pmuellr/">http://people.apache.org/~pmuellr/</a> [temporary]</a>
+<tr><td>- cloneable source at Apache:      <td><a href="https://git-wip-us.apache.org/repos/asf/incubator-cordova-weinre.git">https://git-wip-us.apache.org/repos/asf/incubator-cordova-weinre.git</a>
+<tr><td>- Apache repo cloned at GitHub:    <td><a href="https://github.com/apache/incubator-cordova-weinre">https://github.com/apache/incubator-cordova-weinre</a>
+<tr><td>- mailing lists at Apache:         <td><a href="http://incubator.apache.org/cordova/#mailing-list">http://incubator.apache.org/cordova/#mailing-list</a> (use callback-dev)
 <tr><td>- discussion at Google Group:      <td><a href="http://groups.google.com/group/weinre">http://groups.google.com/group/weinre</a>
 </table>
 
diff --git a/weinre.doc/Installing.body.html b/weinre.doc/Installing.body.html
index c4854fc..cfd3195 100644
--- a/weinre.doc/Installing.body.html
+++ b/weinre.doc/Installing.body.html
@@ -17,14 +17,56 @@
  * under the License.
 -->
 
-<p><span class="weinre">weinre</span> is shipped as an archive
-available at
-<a href="">[TBD]</a>
+<p><span class="weinre">weinre</span> is shipped as archives
+available at Apache.
 
-<ul class="spaced">
+<p>To install weinre, download a <tt>bin</tt> release, unarchive
+to wherever you'd wish.  <span class="weinre">weinre</span> is not
+sensitive to the directory it's installed in, and does not 
+write to any files.
 
-<li><b><tt>weinre-node-x.y.z.zip</tt></b>
+<h2>Releases</h2>
 
+<p>The distribution releases should be available at:
+
+<ul>
+<li><a href="http://www.apache.org/dyn/closer.cgi/incubator/cordova">http://apache.org/dist/incubator/cordova/</a>
+(at the time of this writing, that link does not actually resolve because
+there are no official releases)
 </ul>
 
-<p>Unzip the archive wherever you wish.
+<p>The archive releases should be available at:
+
+<ul>
+<li><a href="http://archive.apache.org/dist/incubator/cordova/">http://archive.apache.org/dist/incubator/cordova/</a>
+(at the time of this writing, that link does not actually resolve because
+there are no official releases)
+</ul>
+
+<p>Unofficial builds are available here:
+
+<ul>
+<li><a href="http://people.apache.org/~pmuellr/">http://people.apache.org/~pmuellr/</a>
+</ul>
+
+<p>The archives available are:
+
+<ul>
+<li><tt>apache-cordova-weinre-{version}-bin.tar.gz</tt>
+<li><tt>apache-cordova-weinre-{version}-bin.zip</tt>
+<li><tt>apache-cordova-weinre-{version}-doc.tar.gz</tt>
+<li><tt>apache-cordova-weinre-{version}-doc.zip</tt>
+<li><tt>apache-cordova-weinre-{version}-src.tar.gz</tt>
+<li><tt>apache-cordova-weinre-{version}-src.zip</tt>
+</ul>
+
+<p>The difference between the <tt>.tar.gz</tt> and <tt>.zip</tt>
+archives is the archive format only.  When expanded, both archives
+produce the same files.
+
+<p>The <tt>doc</tt> archives contain the stand-alone HTML documentation
+<p>The <tt>src</tt> archives contain the ready-to-rebuild source
+<p>The <tt>bin</tt> archives contain the ready-to-run binaries
+
+<p>If the <tt>{version}</tt> contains a moniker like <tt>pre</tt>, this
+is indicative of a non-final release.
diff --git a/weinre.doc/boilerplate-header.html.txt b/weinre.doc/boilerplate-header.html.txt
index 8e4039a..e93d93b 100644
--- a/weinre.doc/boilerplate-header.html.txt
+++ b/weinre.doc/boilerplate-header.html.txt
@@ -28,7 +28,9 @@
 
 <body>
 
-<a class="no-decoration" href="https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-weinre.git"><div class="ribbon">clone weinre at apache</div></a>
+<!--
+<a class="no-decoration" href="https://git-wip-us.apache.org/repos/asf/incubator-cordova-weinre.git"><div class="ribbon">clone weinre at apache</div></a>
+-->
 
 <!-- ======================================================================= -->
 <h1 class="page-title">weinre - @PAGE_NAME@</h1>
diff --git a/weinre.server/.gitignore b/weinre.server/.gitignore
index 9c2a02a..052dbe5 100644
--- a/weinre.server/.gitignore
+++ b/weinre.server/.gitignore
@@ -1,4 +1,4 @@
 tmp
 web
 build-info.txt
-package.json
\ No newline at end of file
+/package.json
\ No newline at end of file
diff --git a/weinre.server/lib/service/WeinreClientCommands.coffee b/weinre.server/lib/service/WeinreClientCommands.coffee
index 29fc575..713a48b 100644
--- a/weinre.server/lib/service/WeinreClientCommands.coffee
+++ b/weinre.server/lib/service/WeinreClientCommands.coffee
@@ -19,6 +19,7 @@
 
 _ = require('underscore')
 
+weinre             = require '../weinre'
 utils              = require '../utils'
 channelManager     = require '../channelManager'
 serviceManager     = require '../serviceManager'
@@ -39,6 +40,8 @@
             if typeof val in ['number', 'boolean']
                 options[key] = "#{val}"
         
+        options.version = weinre.getVersion()
+        
         WeinreClientEvents.serverProperties(channel, options)
 
         clients = channelManager.getClientChannels(channel.id)
diff --git a/weinre.server/node_modules/coffee-script/package.json b/weinre.server/node_modules/coffee-script/package.json
new file mode 100644
index 0000000..2547bdf
--- /dev/null
+++ b/weinre.server/node_modules/coffee-script/package.json
@@ -0,0 +1,31 @@
+{
+  "name":         "coffee-script",
+  "description":  "Unfancy JavaScript",
+  "keywords":     ["javascript", "language", "coffeescript", "compiler"],
+  "author":       "Jeremy Ashkenas",
+  "version":      "1.2.0",
+  "licenses":     [{
+    "type":       "MIT",
+    "url":        "http://github.com/jashkenas/coffee-script/raw/master/LICENSE"
+  }],
+  "engines":      {
+    "node":       ">=0.4.0"
+  },
+  "directories" : {
+    "lib" : "./lib/coffee-script"
+  },
+  "main" : "./lib/coffee-script/coffee-script",
+  "bin":          {
+    "coffee":     "./bin/coffee",
+    "cake":       "./bin/cake"
+  },
+  "homepage":     "http://coffeescript.org",
+  "repository":   {
+    "type": "git",
+    "url": "git://github.com/jashkenas/coffee-script.git"
+  },
+  "devDependencies": {
+    "uglify-js":  ">=1.0.0",
+    "jison":      ">=0.2.0"
+  }
+}
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/package.json b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/package.json
new file mode 100644
index 0000000..4cf5f2d
--- /dev/null
+++ b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/package.json
@@ -0,0 +1,22 @@
+{
+  "name": "formidable",
+  "version": "1.0.9",
+  "dependencies": {},
+  "devDependencies": {
+    "gently": "0.8.0",
+    "findit": "0.1.1",
+    "hashish": "0.0.4",
+    "urun": "0.0.4",
+    "utest": "0.0.3"
+  },
+  "directories": {
+    "lib": "./lib"
+  },
+  "main": "./lib/index",
+  "scripts": {
+    "test": "make test"
+  },
+  "engines": {
+    "node": "*"
+  }
+}
\ No newline at end of file
diff --git a/weinre.server/node_modules/express/node_modules/connect/package.json b/weinre.server/node_modules/express/node_modules/connect/package.json
new file mode 100644
index 0000000..f9c43d5
--- /dev/null
+++ b/weinre.server/node_modules/express/node_modules/connect/package.json
@@ -0,0 +1,25 @@
+{
+  "name": "connect",
+  "version": "1.8.5",
+  "description": "High performance middleware framework",
+  "keywords": ["framework", "web", "middleware", "connect", "rack"],
+  "repository": "git://github.com/senchalabs/connect.git",
+  "author": "TJ Holowaychuk <tj@vision-media.ca> (http://tjholowaychuk.com)",
+  "repository": "git://github.com/senchalabs/connect",
+  "dependencies": {
+    "qs": ">= 0.4.0",
+    "mime": ">= 0.0.1",
+    "formidable": "1.0.x"
+  },
+  "devDependencies": {
+    "expresso": "0.9.2",
+    "koala": "0.1.2",
+    "less": "1.1.1",
+    "sass": "0.5.0",
+    "markdown": "0.2.1",
+    "ejs": "0.4.3",
+    "should": "0.3.2"
+  },
+  "main": "index",
+  "engines": { "node": ">= 0.4.1 < 0.7.0" }
+}
\ No newline at end of file
diff --git a/weinre.server/node_modules/express/node_modules/mime/package.json b/weinre.server/node_modules/express/node_modules/mime/package.json
new file mode 100644
index 0000000..31d4e20
--- /dev/null
+++ b/weinre.server/node_modules/express/node_modules/mime/package.json
@@ -0,0 +1,22 @@
+{
+  "author": {
+    "name": "Robert Kieffer",
+    "url": "http://github.com/broofa",
+    "email": "robert@broofa.com"
+  },
+  "contributors": [
+    {
+      "name": "Benjamin Thomas",
+      "url": "http://github.com/bentomas",
+      "email": "benjamin@benjaminthomas.org"
+    }
+  ],
+  "dependencies": {},
+  "description": "A comprehensive library for mime-type mapping",
+  "devDependencies": {},
+  "keywords": ["util", "mime"],
+  "main": "mime.js",
+  "name": "mime",
+  "repository": {"url": "http://github.com/bentomas/node-mime", "type": "git"},
+  "version": "1.2.5"
+}
diff --git a/weinre.server/node_modules/express/node_modules/mkdirp/package.json b/weinre.server/node_modules/express/node_modules/mkdirp/package.json
new file mode 100644
index 0000000..f5ceb00
--- /dev/null
+++ b/weinre.server/node_modules/express/node_modules/mkdirp/package.json
@@ -0,0 +1,23 @@
+{
+    "name" : "mkdirp",
+    "description" : "Recursively mkdir, like `mkdir -p`",
+    "version" : "0.0.7",
+    "author" : "James Halliday <mail@substack.net> (http://substack.net)",
+    "main" : "./index",
+    "keywords" : [
+        "mkdir",
+        "directory"
+    ],
+    "repository" : {
+        "type" : "git",
+        "url" : "http://github.com/substack/node-mkdirp.git"
+    },
+    "scripts" : {
+        "test" : "node node_modules/tap/bin/tap.js test/*.js"
+    },
+    "devDependencies" : {
+        "tap" : "0.0.x"
+    },
+    "license" : "MIT/X11",
+    "engines": { "node": "*" }
+}
diff --git a/weinre.server/node_modules/express/node_modules/qs/package.json b/weinre.server/node_modules/express/node_modules/qs/package.json
new file mode 100644
index 0000000..68dd5a6
--- /dev/null
+++ b/weinre.server/node_modules/express/node_modules/qs/package.json
@@ -0,0 +1,16 @@
+{
+  "name": "qs",
+  "description": "querystring parser",
+  "version": "0.4.2",
+  "repository": {
+    "type" : "git",
+    "url" : "git://github.com/visionmedia/node-querystring.git"
+  },
+  "devDependencies": {
+      "mocha": "*"
+    , "should": "*"
+  },
+  "author": "TJ Holowaychuk <tj@vision-media.ca> (http://tjholowaychuk.com)",
+  "main": "index",
+  "engines": { "node": "*" }
+}
\ No newline at end of file
diff --git a/weinre.server/node_modules/express/package.json b/weinre.server/node_modules/express/package.json
new file mode 100644
index 0000000..765b55d
--- /dev/null
+++ b/weinre.server/node_modules/express/package.json
@@ -0,0 +1,39 @@
+{
+  "name": "express",
+  "description": "Sinatra inspired web development framework",
+  "version": "2.5.7",
+  "author": "TJ Holowaychuk <tj@vision-media.ca>",
+  "contributors": [ 
+    { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" }, 
+    { "name": "Aaron Heckmann", "email": "aaron.heckmann+github@gmail.com" },
+    { "name": "Ciaran Jessup", "email": "ciaranj@gmail.com" },
+    { "name": "Guillermo Rauch", "email": "rauchg@gmail.com" }
+  ],
+  "dependencies": {
+    "connect": "1.x",
+    "mime": ">= 0.0.1",
+    "qs": ">= 0.3.1",
+    "mkdirp": "0.0.7"
+  },
+  "devDependencies": {
+    "connect-form": "0.2.1",
+    "ejs": "0.4.2",
+    "expresso": "0.9.2",
+    "hamljs": "0.6.x",
+    "jade": "0.16.2",
+    "stylus": "0.13.0",
+    "should": "0.3.2",
+    "express-messages": "0.0.2",
+    "node-markdown": ">= 0.0.1",
+    "connect-redis": ">= 0.0.1"
+  },
+  "keywords": ["framework", "sinatra", "web", "rest", "restful"],
+  "repository": "git://github.com/visionmedia/express",
+  "main": "index",
+  "bin": { "express": "./bin/express" },
+  "scripts": {
+    "test": "make test",
+    "prepublish" : "npm prune"
+  },
+  "engines": { "node": ">= 0.4.1 < 0.7.0" }
+}
\ No newline at end of file
diff --git a/weinre.server/node_modules/express/testing/foo/package.json b/weinre.server/node_modules/express/testing/foo/package.json
new file mode 100644
index 0000000..dd54123
--- /dev/null
+++ b/weinre.server/node_modules/express/testing/foo/package.json
@@ -0,0 +1,9 @@
+{
+    "name": "application-name"
+  , "version": "0.0.1"
+  , "private": true
+  , "dependencies": {
+      "express": "2.5.0"
+    , "jade": ">= 0.0.1"
+  }
+}
\ No newline at end of file
diff --git a/weinre.server/node_modules/nopt/node_modules/abbrev/package.json b/weinre.server/node_modules/nopt/node_modules/abbrev/package.json
new file mode 100644
index 0000000..ebd082f
--- /dev/null
+++ b/weinre.server/node_modules/nopt/node_modules/abbrev/package.json
@@ -0,0 +1,8 @@
+{ "name" : "abbrev"
+, "version" : "1.0.3"
+, "description" : "Like ruby's abbrev module, but in js"
+, "author" : "Isaac Z. Schlueter <i@izs.me>"
+, "main" : "./lib/abbrev.js"
+, "scripts" : { "test" : "node lib/abbrev.js" }
+, "repository" : "http://github.com/isaacs/abbrev-js"
+}
diff --git a/weinre.server/node_modules/nopt/package.json b/weinre.server/node_modules/nopt/package.json
new file mode 100644
index 0000000..d1118e3
--- /dev/null
+++ b/weinre.server/node_modules/nopt/package.json
@@ -0,0 +1,12 @@
+{ "name" : "nopt"
+, "version" : "1.0.10"
+, "description" : "Option parsing for Node, supporting types, shorthands, etc. Used by npm."
+, "author" : "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)"
+, "main" : "lib/nopt.js"
+, "scripts" : { "test" : "node lib/nopt.js" }
+, "repository" : "http://github.com/isaacs/nopt"
+, "bin" : "./bin/nopt.js"
+, "license" :
+  { "type" : "MIT"
+  , "url" : "https://github.com/isaacs/nopt/raw/master/LICENSE" }
+, "dependencies" : { "abbrev" : "1" }}
diff --git a/weinre.server/node_modules/underscore/package.json b/weinre.server/node_modules/underscore/package.json
new file mode 100644
index 0000000..4a2e3ca
--- /dev/null
+++ b/weinre.server/node_modules/underscore/package.json
@@ -0,0 +1,10 @@
+{
+  "name"          : "underscore",
+  "description"   : "JavaScript's functional programming helper library.",
+  "homepage"      : "http://documentcloud.github.com/underscore/",
+  "keywords"      : ["util", "functional", "server", "client", "browser"],
+  "author"        : "Jeremy Ashkenas <jeremy@documentcloud.org>",
+  "repository"    : {"type": "git", "url": "git://github.com/documentcloud/underscore.git"},
+  "main"          : "underscore.js",
+  "version"       : "1.3.1"
+}