12 Things to Know About Buildr
Programming Model
Buildr is built on Rake, which means it is based on a task and dependency model;
Main Purpose
Buildr lets you easily define common build tasks and their dependencies using a project structure and standardized tasks such as "compile", "test", "package", etc.
Execution Order
Buildr/Rake determine the order of execution of tasks through dependency analysis (also known as topological sorting);
Goal Oriented
Buildr will only execute tasks required to achieve the goals specified on the command-line. If a task does not execute, it's either because it's not required as part of the transitive dependencies of the stated goals, or because the task determined its output already exists and is up-to-date.
Task Responsibility
Even if Buildr/Rake determine if and when a task should execute, each task is individually responsible for determining if it should do something. If the task's output is already available and up-to-date, the task should typically not redo its work.
Project dependencies
Projects implicitly depends on their sub-projects. A project may depend on a sibling, but not on a parent.
Project Tasks
Standard project tasks are: compile, package, test, integration, ... TODO
Concurrency Support
Buildr/Rake support concurrent task execution to shorten build time. Rake's internal data structures are thread-safe with respect to concurrent task execution. However, if data is shared between potentially concurrent tasks, it's the tasks' responsibility to prevent race conditions and data corruption.
Supported Platforms
Buildr runs on Ruby and JRuby, which means it can run on pretty much any modern operating system;
Ecosystem
If Builder doesn't support a feature you need, look for:
1) an existing Buildr plugin,
2) an existing Ant task,
3) an existing Ruby gem library,
4) an existing Java library;
or write your own
Community
Buildr is a vibrant community of people passionate about their build system and good software in general. Join our mailing lists, let us know if you find bugs, try to fix stuff if you can, exchange your ideas, write documentation, promote Buildr through guerilla means (blog, tweets, meetups, ...) and help us create better software.
License
Buildr is licensed under the liberal Apache Software License v2, which means it's free software and you can use it commercially. Refer to the license for actual terms and conditions.