doit logo

Table Of Contents

Sponsors

Your logo here

Sponsor/Donate


If you use doit and think it is a useful project. Please consider to make a donation to support the developer/maintainer with maintanance tasks (bug fixes, merge patches, reply users) and further development.

If you use it at work, ask your company to sponsor the project. The logo of your company will be placed on this website side-bar (see above). For more information please contact schettino72@gmail.com

Hire me

Looking for a python developer with a proven record of designing and developing robust and well tested applications? The creator and maintainer of doit is available for hire. Full-time, part-time or one-off job.
Contact: schettino72@gmail.com



Changes

0.28.0 (2015-04-22)

  • BACKWARD INCOMPATIBLE: signature for custom DB backend changed
  • BACKWARD INCOMPATIBLE: DoitMain API change
  • BACKWARD INCOMPATIBLE: Command API change
  • BACKWARD INCOMPATIBLE: default reporter renamed to console
  • GH-#25: Add a reset-dep command to recompute dependencies state
  • GH-#22: Allow to customize how file_dep are checked
  • GH-#31: Add IPython %doit magic-function loading tasks from its global namespace
  • read configuration options from INI files
  • GH-#32 plugin system
  • plugin support: COMMAND - add new commands
  • plugin support: LOADER - add custom task loaders
  • plugin support: REPORTER - add custom reporter for run command
  • plugin support: BACKEND - add custom DB persistence backend
  • GH-#36 PythonAction recognizes returned TaskError or TaskFailed
  • GH-#37 CmdParse support for arguments of type list
  • GH-#47 CmdParse support for choices
  • fix issue when using unicode strings to specify minversion on python 2
  • fix GH-#27 auto command in conjunction with task arguments
  • fix GH-#44 Fix the list -s command when result_dep is used
  • fix GH-#45 make sure all uptodate checks are executed (no short-circuit)

0.27.0 (2015-01-30)

  • BACKWARD INCOMPATIBLE: drop python 2.6 support

  • BACKWARD INCOMPATIBLE: removed unmaintained genstandalone script

  • BACKWARD INCOMPATIBLE: removed runtests.py script and support to run

    tests through setup.py

  • BACKWARD INCOMPATIBLE: result_dep creates an implicit setup

    (was task_dep)

  • BACKWARD INCOMPATIBLE: GH-#9 getargs creates an implicit result_dep

  • BACKWARD INCOMPATIBLE: CmdAction would always decode process output

    using errors=’strict’ default changed to replace

  • allow task-creators to return/yield Task instances

  • fix GH-#14: add support for delayed task creation

  • fix GH-#15: auto (linux) inotify also listen for MOVE_TO events

  • GH-#4 CmdAction added parameters encoding and decode_error

  • GH-#6: loader.task_loader() accepts methods as task creators

0.26.0 (2014-08-30)

  • moved development to git/github
  • uptodate callable “magic” arguments task and values are now optional
  • added command info to display task metadata
  • command clean smarter execution order
  • remove strace short option -k because it conflicts with run option
  • fix zsh tab-completion script when not doit script
  • fix #79. Use setuptools and entry_points
  • order of yielded tasks is preserved
  • #68. pass positional args to tasks
  • fix tab-completion on BASH for sub-commands that take file arguments

0.25.0 (2014-03-26)

  • BACKWARD INCOMPATIBLE: use function doit.get_initial_workdir() instead of variable doit.initial_workdir
  • DEPRECATED tools.InteractiveAction renamed to tools.LongRunning
  • fix: strace raises InvalidCommand instead of using assert
  • #28: task uptodate support string to be executed as shell command
  • added tools.Interactive for use with interactive commands
  • #69: added doit.run() to make it easier to turn a dodo file into executable
  • #70: added option “–pdb” to command run
  • added option “–single” to command run
  • include list of file_dep as an implicit dependency

0.24.0 (2013-11-24)

  • reporter added initialize()
  • cmd list: added option –template
  • dodo.py can specify minimum required doit version with DOIT_CONFIG[‘minversion’]
  • #62: added the absolute path from which doit is invoked doit.initial_workdir
  • fix #36: added method isatty() to action.Writer
  • added command tabcompletion for bash and zsh
  • fix #56: allow python actions to have default values for task parameters

0.23.0 (2013-09-20)

  • support definition of group tasks using basename without any task
  • added task property watch to specific extra files/folders in auto command
  • CmdAction support for all arguments of subprocess.Popen, but stdout and stderr
  • added command option -k as short for –seek-file
  • task action can be specified as a list of strings (executed using subprocess.Popen shell=False)
  • fix #60: result of calc_dep only considered if not run yet
  • fix #61: test failures involving DBM
  • fix: do not allow duplicate task names

0.22.1 (2013-08-04)

  • fix reporter output in py3 was being displayed as bytes instead of string
  • fix pr#12 read file in chunks when calculating MD5
  • fix #54 - remove distribute bootstrapping during installation

0.22.0 (2013-07-05)

  • fix #49: skip unicode tests on systems with non utf8 locale
  • fix #51: bash completion does not mess up with global COMP_WORDBREAKS
  • fix docs spelling and added task to check spelling
  • fix #47: Task.options can always be accessed from uptodate code
  • fix #45: cmd forget, added option -s/–follow-sub to forget task_dep too

0.21.1 (2013-05-21)

  • fix tests on python3.3.1
  • fix race condition on CmdAction (affected only python>=3.3.1)

0.21.0 (2013-04-29)

  • fix #38: doit.tools.create_folder() raise error if file exists in path
  • create_doit_tasks not called for unbound methods
  • support execution using “python -m doit”
  • fix #33: Failing to clean a group of task(s) with sub-tasks
  • python-actions can take a magic “task” parameter as reference to task
  • expose task.clean_targets
  • tools.PythonInteractiveAction saves “result” and “values”
  • fix #40. added option to use threads for parallel running of tasks
  • same code base for python 2 & 3 (no need to use tool 2to3)
  • add sqlite3 DB backend
  • added option to select backend

0.20.0 (2013-01-09)

  • added command dumpdb
  • added CmdAction.save_out param
  • CmdAction support for callable that returns a command string
  • BACKWARD INCOMPATIBLE getargs for a group task gets a dict where each key is the name of subtasks (previously it was a list)
  • added command strace
  • cmd auto run tasks on separate process
  • support unicode for task name

0.19.0 (2012-12-18)

  • support for doit help <task-name>
  • added support to load tasks using create_doit_tasks
  • dropped python 2.5 support

0.18.1 (2012-12-03)

  • fix bug cmd option –continue not being recognized

0.18.0 (2012-11-27)

  • remove DEPRECATED Task.insert_action, result_dep and getargs using strings
  • fix #10 –continue does not execute tasks that have failed dependencies
  • fix –always-execute does not execute “ignored” tasks
  • fix #29 python3 cmd-actions issue
  • fix #30 tests pass on all dbm backends
  • API to add new sub-commands to doit
  • API to modify task loader
  • API to make dodo.py executable
  • added ZeroReporter

0.17.0 (2012-09-20)

  • fix #12 Action.out and Action.err not set when using multiprocessing
  • fix #16 fix forget command on gdbm backend
  • fix #14 improve parallel execution (better process utilization)
  • fix #9 calc_dep create implicit task_dep if a file_dep returned is a also a target
  • added tools.result_dep
  • fix #15 tools.result_dep supports group-tasks
  • DEPRECATE task attribute result_dep (use tools.result_dep)
  • DEPRECATE getargs specification using strings (must use 2-element tuple)
  • several changes on uptodate
  • DEPRECATE Task.insert_action (replaced by Task.value_savers)
  • fix #8 clean cleans all subtasks from a group-task
  • fix #8 clean added flag –all to clean all tasks
  • fix #8 clean when no task is specified set –clean-dep and clean default tasks

0.16.1 (2012-05-13)

  • fix multiprocessing/parallel bug
  • fix unicode bug on tools.config_changed
  • convert tools uptodate stuff to a class, so it can be used with multi-processing

0.16.0 (2012-04-23)

  • added task parameter basename
  • added support for task generators yield nested python generators
  • doit process return value 3 in case tasks do start executing (reporter is not used)
  • task parameter getargs take a tuple with 2 values (task_id, key_name)
  • DEPRECATE getargs being specified as <task_id>.<key_name>
  • getargs can take all values from task if specified as (task_id, None)
  • getargs will pass values from all sub-tasks if specified task is a group task
  • result_dep on PythonAction support checking for dict values
  • added doit.tools.PythonInteractiveAction

0.15.0 (2012-01-10)

  • added option –db-file (#909520)
  • added option –no-continue (#586651)
  • added genstandalone.py to create a standalone doit script (#891935)
  • fix doit.tools.set_trace to not modify sys.stdout

0.14.0 (2011-11-05)

  • added tools.InteractiveAction (#865290)
  • bash completion script
  • sub-command list: tasks on alphabetical order, better formatting (#872829)
  • fix uptodate to accept instance methods callables (#871967)
  • added command line option --seek-file
  • added tools.check_unchanged_timestamp (#862606)
  • fix bug subclasses of BaseAction should get a task reference

0.13.0 (2011-07-18)

  • performance speed improvements
  • fix bug on unicode output when task fails
  • ConsoleReporter does not output task’s title for successful tasks that start with an _
  • added tools.config_changed (to be used with uptodate)
  • teardown actions are executed in reverse order they were registered
  • added doit.get_var to get variables passed from command line
  • getargs creates implicit “setup” task not a “task_dep”

0.12.0 (2011-05-29)

  • fix bug #770150 - error on task dependency from target
  • fix bug #773579 - unicode output problems
  • task parameter uptodate accepts callables
  • deprecate task attribute run_once. use tools.run_once on uptodate instead
  • added doit.tools.timeout

0.11.0 (2011-04-20)

  • no more support for python2.4
  • support for python 3.2
  • fix bug on unicode filenames & unicode output (#737904)
  • fix bug when using getargs together with multiprocess (#742953)
  • fix for dumbdbm backend
  • fix task execution order when using “auto” command
  • fix getargs when used with sub-tasks
  • fix calc_dep when used with “auto” command
  • “auto” command now support verbosity control option

0.10.0 (2011-01-24)

  • add task parameter “uptodate”
  • add task parameter “run_once”
  • deprecate file_dep bool values and None
  • fix issues with error reporting for JSON Reporter
  • “Reporter” API changes
  • ”.doit.db” now uses a DBM file format by default (speed optimization)

0.9.0 (2010-06-08)

  • support for dynamic calculated dependencies “calc_dep”
  • support for user defined reporters
  • support “auto” command on mac
  • fix installer on mac. installer aware of different python versions
  • deprecate ‘dependencies’. use file_dep, task_dep, result_dep.

0.8.0 (2010-05-16)

  • parallel execution of tasks (multi-process support)
  • sub-command “list” option “–deps”, show list of file dependencies
  • select task by wildcard (fnmatch) i.e. test:folderXXX/*
  • task-setup can be another task
  • task property “teardown” substitute of setup-objects cleanup
  • deprecate setup-objects

0.7.0 (2010-04-08)

  • configure options on dodo file (deprecate DEFAULT_TASKS)(#524387)
  • clean and forget act only on default tasks (not all tasks) (#444243)
  • sub-command “clean” option “clean-dep” to follow dependencies (#444247)
  • task dependency “False” means never up-to-date, “None” ignored
  • sub-command “list” by default do not show tasks starting with an underscore, added option (-p/–private)
  • new sub-command “auto”

0.6.0 (2010-01-25)

  • improve (speed optimization) of check if file modified (#370920)
  • sub-command “clean” dry-run option (-n/–dry-run) (#444246)
  • sub-command “clean” has a more verbose output (#444245)
  • sub-command “list” option to show task status (-s/–status) (#497661)
  • sub-command “list” filter tasks passed as positional parameters
  • tools.set_trace, PDB with stdout redirection (#494903)
  • accept command line optional parameters passed before sub-command (#494901)
  • give a clear error message if .doit.db file is corrupted (#500269)
  • added task option “getargs”. actions can use computed values from other tasks (#486569)
  • python-action might return a dictionary on success

0.5.1 (2009-12-03)

  • fix. task-result-dependencies should be also added as task-dependency to force its execution.

0.5.0 (2009-11-30)

  • task parameter ‘clean’ == True, cleans empty folders, and display warning for non-empty folders
  • added command line option –continue. Execute all tasks even if tasks fails
  • added command line option –reporter to select result output reporter
  • added executed-only reporter
  • added json reporter
  • support for task-result dependency #438174
  • added sub-command ignore task
  • added command line option –outfile. write output to specified file path
  • added support for passing arguments to tasks on cmd line
  • added command line option –dir (-d) to set current working directory
  • removed dodo-sample sub-command
  • added task field ‘verbosity’
  • added task field ‘title’
  • modified default way a task is printed on console (just show ”. name”), old way added to doit.tools.task_title_with_actions

0.4.0 (2009-10-05)

  • deprecate anything other than a boolean values as return of python actions
  • sub-cmd clean (#421450)
  • remove support for task generators returning action (not documented behavior)
  • setup parameter for a task should be a list - single value deprecated (#437225)
  • PythonAction support ‘dependencies’, ‘targets’, ‘changed’ parameters
  • added tools.create_folder (#421453)
  • deprecate folder-dependency
  • CmdActions reference to dependencies, targets and changed dependencies (#434327)
  • print task description when printing through doit list (#425811)
  • action as list of commands/python (#421445)
  • deprecate “action” use “actions”

0.3.0 (2009-08-30)

  • added subcommand “forget” to clear successful runs status (#370911)
  • save run results in text file using JSON. (removed dbm)
  • added support for DEFAULT_TASKS in dodo file
  • targets md5 is not checked anymore. if target exist, task is up-to-date. it also supports folders
  • cmd line sub-commands (#370909)
  • remove hashlib dependency on python 2.4
  • sub-cmd to create dodo template
  • cmd-task supports a list of shell commands
  • setup/cleanup for task (#370905)

0.2.0 (2009-04-16)

  • docs generated using sphinx
  • execute once (dependency = True)
  • group task
  • support python 2.4 and 2.6
  • folder dependency

0.1.0 (2008-04-14)

  • initial release