Skip to content

Latest commit

 

History

History
143 lines (102 loc) · 3.96 KB

CHANGES.md

File metadata and controls

143 lines (102 loc) · 3.96 KB

Changelog

New in 0.5.2

  • Auto mode works for watched directories

New in 0.5.1

  • Add support for tasks depending on directories
  • New fast_dirs mode in TaskManager for cheaper directory checks
  • Add progress callback
  • Add support for passing blocks to Tasks:
Croupier::Task.new output: "fileA", inputs: ["input.txt"] do
  puts "task1 running"
  File.read("input.txt").downcase
end

New in 0.5.0

  • New TaskManager.auto_mode? property
  • Yield on spawn to make concurrency more useful
  • More efficient input handling
  • Fix deadlocking bug in parallel runner
  • Warn or error when tasks are next in line but not ready

Version 0.4.1

  • Add mergeable flag for tasks (default true)
  • Added TaskManager.depends_on function

Version 0.4.0

  • Add trace level debug about why tasks run
  • Implement k/v data as input/output for tasks
  • Implement persistent k/v store
  • Implement fast_mode for TaskManager, where it checks file timestamps instead of contents to decide if they should trigger tasks.
  • Better logs

Version 0.3.4

  • Fixed bug saving .croupier, was missing all inputs
  • Added tests for TaskManager.save_run
  • Fixed bug in inotify watcher path lookup
  • Fixed bug where auto_run would only run tasks once

Version 0.3.3

  • Implemented keep-going flag

Version 0.3.2

  • Add support for running only some tasks in auto_run
  • Implemented TaskManager.inputs to get the inputs for a given list of targets.
  • Implemented TaskManager.stop_watch and watcher cleanup
  • Uncommented skipping run if queued changes are empty in auto_run
  • Added support for calling watch only for the dependencies of specific targets
  • Simpler one-watcher implementation of watch
  • Only react to specific Inotify flags in watch

Version 0.3.1

  • Added auto_run / auto_stop that control a "watchdog" fiber that automatically runs tasks if their dependencies change.

Version 0.3.0

  • Removed name parameter
  • Made autogenerated Task.@id shorter
  • Implemented more complex task merging strategy (see "complex merge" in the spec)

Version 0.2.3

  • Made TaskManager.all_inputs more efficient
  • Call TaskManager.sorted_tas_graph less and made it faster
  • Make @id generation simpler

Version 0.2.2

  • Tasks without inputs should be treated like always_run tasks (found via bug in Hacé)
  • Tasks without inputs and multiple outputs should not run twice (found via bug in Hacé)
  • Made TaskManager an instance of a struct, and lost all the class variables, simplifying code.
  • Removed some small methods from TaskManager.

Version 0.2.1

  • Fix bug that triggered too many builds in some cases in nicolino
  • Bring the parallel runner up to date with the serial one, including equivalent tests

Version 0.2.0

  • Tasks are mostly YAML serializable (procs can't be serialized)
  • Task class uses properties instead of instance variables
  • TaskManager is now a struct
  • Renamed argument output to outputs in Task.initialize where it makes sense.
  • Fixed bug merging tasks with multiple outputs
  • Fixed bug merging tasks with different flags
  • Added missing always_run flag to overloaded Task.initialize

Version v0.1.8

  • Added always_run flag for tasks that run even if their dependencies are unchanged.
  • Added dry_run flag for run_tasks, which will not actually run the procs.

Version v0.1.7

  • Improve handling of tasks without outputs. They now have an ID they can be referred by.

Version v0.1.6

  • Improved handling of Proc return types.

Version v0.1.5

  • Support tasks that generate multiple outputs
  • Support tasks that generate no output
  • Forbid merging tasks with different no_save settings
  • Minor change in semantics of tasks with the same output

Version v0.1.4

  • Support multiple tasks with same output, which will be executed in creation order.
  • Fail to run if any tasks depend on inputs that don't exist and are not outputs.

Version v0.1.3

This is what it is, no records :-)