Tutorial: Basic Tool Chain Usage -------------------------------- In various introductions and tutorials you were using the qooxdoo tool chain casually along the way. Now it's about time to take a more systematical look. The main interface to invoke the tool chain is the *generate.py* script that is part of every skeleton, often colloquially referred to as "the generator". In each qooxdoo library or application, it sits next to the library's *Manifest.json* and the default configuration file, *config.json*. The *Manifest.json* file is the main declaration file for any qooxdoo app, it's constitutional document if you will. *config.json* is the configuration file that steers the generator and its actions. When invoked, the generator looks for a file of this name in the current directory for default instructions, but you can supply an alternative configuration file with a command line option. Invoking :: generate.py -h |--help gives you a complete list of those options. |image0| In the simplest case the generator takes the name of a *job* to perform as its sole argument. Supplying a non-existing job name will result in the generator providing a list of known jobs which it can perform. You can try this by using a made-up job name like "*x*":: generate.py x The ensuing list can be daunting at first, but we will pick out the most important jobs here. |image1| Generating a Runnable App ~~~~~~~~~~~~~~~~~~~~~~~~~ The most important job of the generator is to create a version of your application that you can run in the browser. This is surprising for many people at first. Why do I need to "generate" a working application, when I have written my JavaScript and have an index.html handy? Why not just load the app right away? The answer is that qooxdoo is not a prefabricated JS library that you just *