There has been a lot of talk currently about making the build system for Dojo simpler. The web based method (customise a build on the Dojo website and download it from there) definitely shows promise, and will be attractive to many users. However, I think that many developers would like to have more control over the build process, while still having the possibility of all of it being automated for them. For this reason I’ve decided to look in to the possibility of using an Eclipse based build system that can operate as a standalone Rich Client application or be a new perspective in Eclipse.
My current thinking is that it will be a generic Ant-based build system that can be customised for multiple “categories”, of which Dojo will be one. The use case is:
1. User chooses an Ant build file to import (either from an existing Subversion checkout or from a copy of Dojo downloaded by this application via Subversion)
2. View pane 1 lists all the available Ant build targets as a list of checkboxes that the user can select
3. View pane 2 lists all the properties that can be set on the Ant build. This pulls the original values for these properties from the build.xml file, but these can be overridden by setting some defaults in the application.
4. View pane 3 provides customised Dojo controls, and this is where the meat of the application will lie. These controls will be able to do a number of things:
- Select combinations of build targets based on predefined settings. E.g . “release” and “intern-strings”
- Set various properties on the build
- Check out various builds of Dojo from SVN trunk and give the user the option to use the build files and/or source files from that release, or from the nightly builds.
- Provide a list of build profiles that the user can choose from, with the possibility of also having a profile-builder that will automatically import a list of all the files that a user can choose and writes the profile for them
The advantages of this approach:
Easy to use
- Works both online and offline (online for checking out builds, offline for building)
- Integrates with Eclipse, so can be a standalone application or part of an existing development environment
- Gives you complete control over the build process, while also simply letting you choose a profile and click “Build”
- Users don’t have to install Ant, Subversion etc. All these utilities will be included in this application
- Can leverage the Eclipse update mechanisms so that users can update their application from an Eclipse update site hosted at dojotoolkit.org
- Fun to write
- Large initial download – probably ~15megs for the standalone app, much smaller for just the Eclipse plugin set
- A lot of work for me :-)
I’ve started work on this, and it’s showing promise. So, all comments and suggestions are welcome.
Update Jan 8th 2006: First beta of this program released. See here for details.
Update Jan 29th 2006: Second beta of this program released. See here for details.