Building tools requirements

Here is a short requirements list for a graphical tool to perform automatic builds of code (Eiffel, C, ...), of documentation and anything else that needs to be build to perform a delivery of EiffelStudio. It has to be graphical because it is easier to see dependencies and will help people who do not know the format used for those scripts to modify those scripts.

High level requirement

  • Look at other existing tools that provides a GUI front-end (e.g. VisualBuildPro which is a commercial product) to get the best out of them. Another option is to have a syntax aware editor with project specific autocomplete capabilities.
  • Command line tool so that it can be launched as a cron job.
  • Multi-platform.
  • Notion of tasks and dependencies between tasks. That way, internally it can build a graph and can optimize the build process depending on the number of CPUs you have on your machine.
  • Pre-build tasks for Source control management (CVS and SVN), or for file system manipulation.
  • Easy to create new tasks that can be reused by other projects.
  • Tasks are platform dependent so if running on Windows, the Unix tasks should not be run.
  • Launch task remotely on remote machine which has no binaries yet (that is to say the build tool needs to be compiled first and then the script launched). The remote access to the machine can be done using ssh/rsh.
  • Failure handling: when a task fails, the build should continue until all other tasks that do not depend on the failed task have completed or failed. Then a summary should be presented and the user can after fixing the issue or the task restart the building process for that task and all the other tasks that depended on it. This feature is necessary to make the creation of new build process for very large system debuggable.