[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"
+}