- Stepford - A vaguely Rake/Make/Cake-like thing for Perl - create steps and let a runner run them
- Stepford::Error - A Stepford exception object
- Stepford::FinalStep - The final step for all Stepford runs
- Stepford::LoggerWithMoniker - The logger used by Step classes.
- Stepford::Plan - Represents a concrete plan for execution by a Stepford::Runner
- Stepford::Planner - Renamed to Stepford;:Runner
- Stepford::Role::Step - The basic role all step classes must implement
- Stepford::Role::Step::FileGenerator - A role for steps that generate files
- Stepford::Role::Step::FileGenerator::Atomic - A role for steps that generate a file atomically
- Stepford::Role::Step::Unserializable - A role for steps with unserializable productions
- Stepford::Runner - Takes a set of steps and figures out what order to run them in
- Stepford::Runner::State - Contains data for a single run
- Stepford::Trait::StepDependency - A trait for attributes which are a step dependency
- Stepford::Trait::StepProduction - A trait for attributes which are a step production
- Stepford::Types - Type library used in Stepford classes/roles
- Stepford::Types::Internal - Internal type definitions for Stepford
Changes for version 0.003002
- BACKWARDS INCOMPATIBILITIES
- When running in parallel, each step's run() method is executed in a try/catch block. This should not affect your code unless you explicitly checked $^S inside the run() method.
- BUG FIXES
- When running in parallel, if the step dies, we now pass the error back to the parent process and do not execute any more steps. We also now explicitly handle steps calling exit() internally, as well as step processes exiting because of some sort of external signal. Previously a child step could die and the build would simply continue on.
- Steps classes which consumed the Stepford::Role::Step::FileGenerator::Atomic role would throw an error if their run() method did not produce a pre-commit file, even if the final post-commit file _did_ exist. This should not be an error, as it's up to each step to decide whether it needs to regenerate the post-commit file.
- Added more logging around the checks for whether a step needs to be re-run based on last run time. This will make debugging unnecessary rebuilds much simpler.