qooxdoo’s tool chain, the set of command line tools most prominently exposed through the Generator (what you invoke with “generate.py”), is about 8 years old in its current conception. When it was started it was an excellent way of providing some niffty tooling to the qooxdoo application developer, like automatic dependency analysis, code selection, optimization and compression. Things that weren’t easily found elsewhere, or were even novel at that time.
Retain the good, embrace the new
So we have started to introduce a Grunt-based layer in our repo to experiement and evaluate such a build layer. The old build system stays untouched for the time being, so you don’t have to worry. The aim is to make existing functionality available through the Grunt frontend, and see which parts of the tool chain can be replaced by Grunt plugins, be they from NPM or self-written. For everything else the existing Python-based tool chain will be utilized.
The eventual goal is to have a qooxdoo tool chain that builds on a generic JS layer, is as powerful and sophisticated as before, but allows easier integration with and extension through third-party code, to make it easier for users to customize the tool chain in their applications, and to allow us to focus more on the qooxdoo-specific functionality and less on generic infrastructure and commodity tasks.
So, this is the beginning. We’ll be back with more as we progress.