fix https://issues.apache.org/jira/browse/CB-257

the README.md in the weinre-node distribution is bogus

For some reason, the node_modules in weinre.server got munged.  A fresh
`npm install` got everything fixed up, but apparently auto-updated
formidable.  That's not great.  Presumably it updated due to a
"use version >= x.y.z" in one of weinre's (recursive) pre-reqs.

Beyond that, did some README.md fix ups.

Also changed the `weinre` command to load coffee-script via an
explicit path; this might not be needed (the package.json file
for coffeescript was munged, but then fixed later).
21 files changed
tree: 65615c15bc525f169c28e4d6ef83757f4d41d8a1
  1. .wr
  2. LICENSE
  3. NOTICE
  4. README.md
  5. weinre.build/
  6. weinre.doc/
  7. weinre.server/
  8. weinre.web/
README.md

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, like FireBug (for FireFox) and Web Inspector (for WebKit-based browsers), except it's designed to work remotely, and in particular, 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/

weinre source

The weinre source is contained in 4 subdirectories:

  • weinre.build - contains the tools to build weinre, the 3rd party libraries that weinre uses, and holds the output of the build

  • weinre.doc - source for the HTML manual for weinre

  • weinre.server - code for the node.js-based weinre server

  • weinre.web - code for the client and target pieces of weinre

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 pre-req's the following tools:

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:

  • full build
  • development build

The full build creates all the artifacts needed for an ‘official’ build.

The development build just creates enough artifacts to test the code.

the first time you run any build:

Some semi-transient artifacts are created the first time you run a build. These will be stored in the weinre.build/cached directory.

to perform the full build:

  • run: cd weinre.build
  • run: ant

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

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:

  • run: cd weinre.build
  • run: ant clean
  • perform the build as usual

to run the output of the development build:

  • run: cd weinre.server
  • run: node weinre [your flavorite options]

other fun development-time hacks

If you have the wr tool 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.

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 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.

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.

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
  • run: cd weinre.build
  • run: ant -f update.vendor.xml

To update the files in weinre.server/node_modules:

  • edit the file weinre.build/package.json.template as appropriate
  • run a build (see above), so that the file weinre.server/package.json file is created from the template you edited above
  • run: cd weinre.server
  • run: npm install