Commit 3a542324 authored by Agustin Henze's avatar Agustin Henze

New upstream version 0.31.0

parent e435b4af
......@@ -9,9 +9,9 @@ revision.txt
tests/data/*
doc/_build
doc/tutorial/*.o
doc/tutorial/*.in
doc/tutorial/*.out
doc/tutorial/file*
doc/samples/*.o
doc/samples/*.in
doc/samples/*.out
doc/samples/file*
language: python
python:
- "2.7"
- "3.2"
- "3.3"
- "3.4"
# - 'pypy' # dbm test fails, remove for now...
- "3.5"
- "3.6"
# - "pypy3" pypy3 implements py3.2 not supported anymore
# when setting sudo to true, issues with strace are fixed
# see: https://github.com/travis-ci/travis-ci/issues/9033
sudo: true
addons:
apt:
packages:
- strace
before_install:
- sudo apt-get install strace
- pip install -U pip setuptools
install:
- "pip install . --use-mirrors"
- pip install .
- pip install -r dev_requirements.txt python-coveralls
# See https://github.com/travis-ci/travis-cookbooks/issues/155
- sudo rm -rf /dev/shm && sudo ln -s /run/shm /dev/shm
branches:
only:
......@@ -23,10 +29,10 @@ branches:
script:
- doit pyflakes
- py.test
- if [[ $TRAVIS_PYTHON_VERSION == '2.7' ]]; then doit coverage; fi
- py.test --ignore-flaky
- if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then doit coverage; fi
after_success:
- if [[ $TRAVIS_PYTHON_VERSION == '2.7' ]]; then coveralls; fi
- if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then coveralls; fi
notifications:
email:
......
......@@ -10,7 +10,7 @@
* Michael Gliwinski - https://launchpad.net/~tzeentch-gm
* Vadim Fint - mocksoul <at> gmail <dot> com
* Thomas Kluyver - https://bitbucket.org/takluyver
* rbeagrie - https://bitbucket.org/rbeagrie
* Rob Beagrie - http://rob.beagrie.com
* Miguel Angel Garcia - http://magmax.org
* Roland Puntaier - roland <dot> puntaier <at> gmail <dot> com
* Vincent Férotin - vincent <dot> ferotin <at> gmail <dot> com
......@@ -19,3 +19,8 @@
* Simon Conseil - contact <at> saimon <dot> org
* Kostis Anagnostopoulos - ankostis <at> gmail <dot> com
* Randall Schwager - schwager <at> hsph <dot> harvard <dot> edu
* Pavel Platto - hinidu <at> gmail <dot> com
* Gerlad Storer - https://github.com/gstorer
* Simon Mutch - https://github.com/smutch
* Michael Milton - https://github.com/tmiguelt
* Mike Pagel - https://github.com/moltob
......@@ -3,6 +3,88 @@
Changes
=======
0.31.0 (*2018-02-25*)
=====================
- BACKWARD INCOMPATIBLE: Drop Python 3.3 support
- Fix #171 Passing environment variables to CmdAction
- Fix #184 parametrize script name
- CmdParse now support getting values from OS environment variables
- option `seek_file` control by ENV var `DOIT_SEEK_FILE`
- #192 ipython extension uses `load_ipython_extension`
- #218 clean with option `--forget` can be used to also forget about cleaned tasks
- Fix strace command (seems strace output was modified)
- Fix #224: use `mock` from stdlib
- #227: enhancements to `info` command
- Fix #197: improve error message for invalid `clean` and `teardown` task params
- Fix #211: do not display traceback for error when missing `file_dep`
- Task `verbosity` has precedence over `verbosity` from config
- Fix #140: add `failure-verbosity`. ConsoleReporter, by default,
do not print stderr twice.
- Fix #155: pass `selected_tasks` to `Reporter.initialize()`
- Fix #221: do not leak meta arguments to actions `kwargs`
- Fix #202: help command display option's name used on config
- Fix #209: fix `clean` ordering, and following implicit task_deps
- Fix: list of sub-tasks do not include non-related `task_dep`
- Internal: Removed `Task.is_subtask` use `Task.subtask_of` instead
0.30.3 (*2017-02-20*)
=====================
- Revert usage of setuptools environment markers (feature too new)
0.30.2 (*2017-02-16*)
=====================
- Fix dependency on `pathlib` from PyPi
0.30.1 (*2017-02-16*)
=====================
- Fix GH-#159 KeyError on doit list --status when missing file dependency
- add python3.6 support
0.30.0 (*2016-11-22*)
=====================
- BACKWARD INCOMPATIBLE: #112 drop python2 compatibility
- GH-#94: option to read output from CmdAction line or byte buffered
- GH-#114: `file_dep`, `targets` and `CmdAction` support pathlib.
- fix GH-#100: make cmd `completion` output deterministic
- fix GH-#99: positional argument on tasks not specified from cmd-line
- fix GH-#97: `list` command does not display task-doc for `DelayedTask`
when `creates` is specified
- fix GH-#131: race condition in doit.tools.create_folder
- fix `auto` command on OS-X systems
- fix GH-#117: Give error when user tries to use equal sign on task name
0.29.0 (*2015-08-16*)
=====================
- BACKWARD INCOMPATIBLE: revert - `result_dep` to create an implicit `task_dep`
- fix GH-#59: command `list` issue with unicode names
- fix GH-#72: cmd `completion` escaping of apostrophes in zsh
- fix GH-#74: Task action's handle python3 callables with keyword only args
- fix GH-#50: Executing tasks in parallel (multi-process) fails on Windows
- fix GH-#71 #92: Better error messages for invalid command line tasks/commands
- fix issue with `--always-execute` and `setup` tasks
- GH-#67: multiprocess runner handles closures in tasks (using cloudpickle)
- GH-#58: add `DelayedLoader` parameter `target_regex`
- GH-#30: add `DelayedLoader` parameter `creates`
- GH-#58: cmd `Run` add option `--auto-delayed-regex`
- GH-#24: cmd `info` add option `--status` show reason a task is not up-to-date
- GH-#66: cmd `auto` support custom ( user specified ) commands to be executed
after each task execution
- GH-#61: speed up sqlite3 backend (use internal memory cache)
0.28.0 (*2015-04-22*)
=====================
......
......@@ -13,8 +13,10 @@ the used command line to reproduce the problem.
## questions
Please ask question in the discussion
[forum](http://groups.google.co.in/group/python-doit).
Do not use the github issue tracker!
[forum](http://groups.google.co.in/group/python-doit)
or on StackOverflow using tag `doit`.
Do not use the github issue tracker to ask questions!
`doit` has extensive online documentation please read the docs!
......
include .coveragerc
include .gitignore
include .travis.yml
include AUTHORS
include CHANGES
include CONTRIBUTING.md
include LICENSE
include README.rst
include TODO.txt
include bash_completion_doit
include dev_requirements.txt
include doc/Makefile
include doc/_static/doit-text-160x60.png
include doc/_static/doit.png
include doc/_static/external.png
include doc/_static/favico.ico
include doc/_static/python-powered-w-100x40.png
include doc/_templates/layout.html
include doc/blog.txt
include doc/changes.rst
include doc/cmd_other.rst
include doc/cmd_run.rst
include doc/conf.py
include doc/configuration.rst
include doc/contents.rst
include doc/dependencies.rst
include doc/dictionary.txt
include doc/epydoc.config
include doc/extending.rst
include doc/faq.rst
include doc/index.rst
include doc/install.rst
include doc/make.bat
include doc/presentation.rst
include doc/related.rst
include doc/stories.rst
include doc/svg/doit-text-full.svg
include doc/svg/doit-text-sq.svg
include doc/svg/doit-text.svg
include doc/svg/doit.svg
include doc/task_args.rst
include doc/task_creation.rst
include doc/tasks.rst
include doc/tools.rst
include doc/tutorial/calc_dep.py
include doc/tutorial/check_timestamp_unchanged.py
include doc/tutorial/checker.py
include doc/tutorial/clean_mix.py
include doc/tutorial/cmd_actions.py
include doc/tutorial/cmd_actions_list.py
include doc/tutorial/cmd_from_callable.py
include doc/tutorial/command.c
include doc/tutorial/command.h
include doc/tutorial/compile.py
include doc/tutorial/config_params.py
include doc/tutorial/cproject.py
include doc/tutorial/custom_cmd.py
include doc/tutorial/custom_loader.py
include doc/tutorial/custom_reporter.py
include doc/tutorial/custom_task_def.py
include doc/tutorial/defs.h
include doc/tutorial/delayed.py
include doc/tutorial/doit_config.py
include doc/tutorial/download.py
include doc/tutorial/empty_subtasks.py
include doc/tutorial/executable.py
include doc/tutorial/folder.py
include doc/tutorial/get_var.py
include doc/tutorial/getargs.py
include doc/tutorial/getargs_dict.py
include doc/tutorial/getargs_group.py
include doc/tutorial/group.py
include doc/tutorial/hello.py
include doc/tutorial/import_tasks.py
include doc/tutorial/initial_workdir.py
include doc/tutorial/kbd.c
include doc/tutorial/longrunning.py
include doc/tutorial/main.c
include doc/tutorial/meta.py
include doc/tutorial/module_loader.py
include doc/tutorial/my_dodo.py
include doc/tutorial/my_module_with_tasks.py
include doc/tutorial/my_tasks.py
include doc/tutorial/parameters.py
include doc/tutorial/parameters_inverse.py
include doc/tutorial/pos.py
include doc/tutorial/run_once.py
include doc/tutorial/sample.py
include doc/tutorial/save_out.py
include doc/tutorial/selecttasks.py
include doc/tutorial/settrace.py
include doc/tutorial/subtasks.py
include doc/tutorial/tar.py
include doc/tutorial/task_name.py
include doc/tutorial/task_reusable.py
include doc/tutorial/taskorder.py
include doc/tutorial/taskresult.py
include doc/tutorial/timeout.py
include doc/tutorial/title.py
include doc/tutorial/titlewithactions.py
include doc/tutorial/touch.py
include doc/tutorial/tsetup.py
include doc/tutorial/tutorial_02.py
include doc/tutorial/uptodate_callable.py
include doc/tutorial/verbosity.py
include doc/uptodate.rst
include doc_requirements.txt
include dodo.py
include doit/__init__.py
include doit/__main__.py
include doit/action.py
include doit/api.py
include doit/cmd_auto.py
include doit/cmd_base.py
include doit/cmd_clean.py
include doit/cmd_completion.py
include doit/cmd_dumpdb.py
include doit/cmd_forget.py
include doit/cmd_help.py
include doit/cmd_ignore.py
include doit/cmd_info.py
include doit/cmd_list.py
include doit/cmd_resetdep.py
include doit/cmd_run.py
include doit/cmd_strace.py
include doit/cmdparse.py
include doit/compat.py
include doit/control.py
include doit/dependency.py
include doit/doit_cmd.py
include doit/exceptions.py
include doit/filewatch.py
include doit/loader.py
include doit/plugin.py
include doit/reporter.py
include doit/runner.py
include doit/task.py
include doit/tools.py
include doit/version.py
include pylintrc
include setup.py
include tests/__init__.py
include tests/conftest.py
include tests/data/README
include tests/loader_sample.py
include tests/myecho.py
include tests/sample.cfg
include tests/sample_md5.txt
include tests/sample_plugin.py
include tests/sample_process.py
include tests/test___main__.py
include tests/test_action.py
include tests/test_api.py
include tests/test_cmd_auto.py
include tests/test_cmd_base.py
include tests/test_cmd_clean.py
include tests/test_cmd_completion.py
include tests/test_cmd_dumpdb.py
include tests/test_cmd_forget.py
include tests/test_cmd_help.py
include tests/test_cmd_ignore.py
include tests/test_cmd_info.py
include tests/test_cmd_list.py
include tests/test_cmd_resetdep.py
include tests/test_cmd_run.py
include tests/test_cmd_strace.py
include tests/test_cmdparse.py
include tests/test_control.py
include tests/test_dependency.py
include tests/test_doit_cmd.py
include tests/test_exceptions.py
include tests/test_filewatch.py
include tests/test_loader.py
include tests/test_plugin.py
include tests/test_reporter.py
include tests/test_runner.py
include tests/test_task.py
include tests/test_tools.py
include zsh_completion_doit
include revision.txt
Metadata-Version: 1.1
Name: doit
Version: 0.28.0
Summary: doit - Automation Tool
Home-page: http://pydoit.org
Author: Eduardo Naufel Schettino
Author-email: schettino72@gmail.com
License: MIT
Description:
`doit` is a task management & automation tool
`doit` comes from the idea of bringing the power of build-tools
to execute any kind of **task**
`doit` is a modern open-source build-tool written in python
designed to be simple to use and flexible to deal with complex work-flows.
It is specially suitable for building and managing custom work-flows where
there is no out-of-the-box solution available.
`doit` has been successfully used on: systems test/integration automation,
scientific computational pipelines, content generation,
configuration management, etc.
`website/docs <http://pydoit.org>`_
Keywords: build make task automation pipeline
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Scientific/Engineering
......@@ -4,20 +4,30 @@ README
.. display some badges
.. image:: https://pypip.in/v/doit/badge.png
.. image:: https://img.shields.io/pypi/v/doit.svg
:target: https://pypi.python.org/pypi/doit
.. image:: https://pypip.in/d/doit/badge.png
:target: https://pypi.python.org/pypi/doit
.. disable this until i figure out how to debug unstable tests
.. image:: https://travis-ci.org/pydoit/doit.png?branch=master
.. image:: https://travis-ci.org/pydoit/doit.png?branch=master
:target: https://travis-ci.org/pydoit/doit
.. image:: https://ci.appveyor.com/api/projects/status/f7f97iywo8y7fe4d/branch/master?svg=true
:target: https://ci.appveyor.com/project/schettino72/doit/branch/master
.. image:: https://coveralls.io/repos/pydoit/doit/badge.png?branch=master
:target: https://coveralls.io/r/pydoit/doit?branch=master
.. image:: https://badges.gitter.im/Join%20Chat.svg
:alt: Join the chat at https://gitter.im/pydoit/doit
:target: https://gitter.im/pydoit/doit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
.. image:: https://opencollective.com/doit/backers/badge.svg
:target: `backers`_
.. image:: https://opencollective.com/doit/sponsors/badge.svg
:target: `sponsors`_
doit - automation tool
======================
......@@ -32,12 +42,13 @@ Project Details
- Project management on github - https://github.com/pydoit/doit
- Discussion group - https://groups.google.com/forum/#!forum/python-doit
- News/twitter - https://twitter.com/py_doit
- Plugins, extensions and projects based on doit - https://github.com/pydoit/doit/wiki/powered-by-doit
license
=======
The MIT License
Copyright (c) 2008-2015 Eduardo Naufel Schettino
Copyright (c) 2008-2018 Eduardo Naufel Schettino
see LICENSE file
......@@ -51,28 +62,27 @@ see AUTHORS file
install
=======
*doit* is tested on python 2.7, 3.3, 3.4.
*doit* is tested on python 3.4 to 3.6.
The last version supporting python 2 is version 0.29.
::
$ python setup.py install
$ pip install doit
dependencies
=============
- six
- cloudpickle
- pyinotify (linux)
- macfsevents (mac)
- configparser (python2 only - backport of py3 configparser)
Tools required for development:
- git * VCS
- py.test * unit-tests
- mock * unit-tests
- coverage * code coverage
- epydoc * API doc generator
- sphinx * doc tool
- pyflakes * syntax checker
- doit-py * helper to run dev tasks
......@@ -123,7 +133,6 @@ To create it (after installing *doit*)::
$ doit website
The website will also includes epydoc generated API documentation.
spell checking
......@@ -140,9 +149,70 @@ The spell checker currently uses `hunspell`, to install it on debian based
systems install the hunspell package: `apt-get install hunspell`.
profiling
---------
::
python -m cProfile -o output.pstats `which doit` list
gprof2dot -f pstats output.pstats | dot -Tpng -o output.png
contributing
==============
On github create pull requests using a named feature branch.
.. _backers
backers
-------
`Become a backer <https://opencollective.com/doit#backer>`_ and show your support to our open source project.
.. image:: https://opencollective.com/doit/backers.svg?width=890
:target: https://opencollective.com/doit#backers
.. _sponsors
sponsors
--------
Support this project by `becoming a sponsor <https://opencollective.com/doit#sponsor>`_.
Your logo will show up here with a link to your website.
.. image:: https://opencollective.com/doit/sponsor/0/avatar
:target: https://opencollective.com/doit/sponsor/0/website
.. image:: https://opencollective.com/doit/sponsor/1/avatar
:target: https://opencollective.com/doit/sponsor/1/website
.. image:: https://opencollective.com/doit/sponsor/2/avatar
:target: https://opencollective.com/doit/sponsor/2/website
.. image:: https://opencollective.com/doit/sponsor/3/avatar
:target: https://opencollective.com/doit/sponsor/3/website
.. image:: https://opencollective.com/doit/sponsor/4/avatar
:target: https://opencollective.com/doit/sponsor/4/website
.. image:: https://opencollective.com/doit/sponsor/5/avatar
:target: https://opencollective.com/doit/sponsor/5/website
.. image:: https://opencollective.com/doit/sponsor/6/avatar
:target: https://opencollective.com/doit/sponsor/6/website
.. image:: https://opencollective.com/doit/sponsor/7/avatar
:target: https://opencollective.com/doit/sponsor/7/website
.. image:: https://opencollective.com/doit/sponsor/8/avatar
:target: https://opencollective.com/doit/sponsor/8/website
.. image:: https://opencollective.com/doit/sponsor/9/avatar
:target: https://opencollective.com/doit/sponsor/9/website
build: false
branches:
only:
- master
- test
environment:
matrix:
- PYTHON: "C:/Python34"
- PYTHON: "C:/Python35"
- PYTHON: "C:/Python36"
init:
- "ECHO %PYTHON%"
- ps: "ls C:/Python*"
install:
- "%PYTHON%/python.exe -m pip install -U pip setuptools"
- "%PYTHON%/Scripts/pip.exe install ."
- "%PYTHON%/Scripts/pip.exe install -r dev_requirements.txt"
test_script:
- "set path=%PYTHON%/Scripts;%path%"
- "%PYTHON%/python.exe --version"
- "%PYTHON%/Scripts/pip.exe --version"
- "doit pyflakes"
- "py.test"
......@@ -2,7 +2,7 @@
# $ pip install --requirement dev_requirements.txt
pyflakes
pytest
mock
coverage
doit-py>=0.3.0
pytest>=2.8.0
pytest-ignore-flaky
coverage>=4.0
doit-py>=0.4.0
......@@ -45,30 +45,27 @@
</style>
{% if include_analytics %}
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-29887834-3']);
_gaq.push(['_setDomainName', 'pydoit.org']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-29887834-3', 'auto');
ga('send', 'pageview');
</script>
{% endif %}
{% endblock %}
{% block rootrellink %}
<li><a href="{{ pathto('index') }}">Home</a>&nbsp;|&nbsp;</li>
<li><a href="{{ pathto('contents') }}">Documentation</a>&nbsp;|&nbsp;</li>
<!-- TODO news -->
<li><a class="external-link" href="https://github.com/pydoit/doit">Code</a>&nbsp;|&nbsp;</li>
<li><a class="external-link" href="https://github.com/pydoit/doit/issues">Issues</a>&nbsp;|&nbsp;</li>
<li><a class="external-link" href="http://pypi.python.org/pypi/doit">Download</a>&nbsp;|&nbsp;</li>
<li><a class="external-link" href="https://stackoverflow.com/questions/tagged/doit">StackOverflow</a>&nbsp;|&nbsp;</li>
<li><a class="external-link" href="http://groups.google.co.in/group/python-doit">Forum</a>&nbsp;|&nbsp;</li>
<li><a class="external-link" href="https://twitter.com/py_doit">Twitter</a></li>
{% endblock %}
......@@ -82,52 +79,45 @@
{% block sidebarsearch %}
{{ super() }}
<h3>Sponsors</h3>
<em>Your logo here</em>
{% if include_donate %}
{% endif %}
<h3>Sponsor/Donate</h3>
<h3>Donate</h3>
{% if include_gittip %}
<div data-gratipay-username="schettino72" data-gratipay-widget="custom">
<div><a class="gratipay-profile-link">Gratipay</a> weekly funding goal is <span class="gratipay-goal">$?.??</span> USD.
</div>
<div style="position:relative;background-color:#2F2D2D;color:#DDDDDD;border-radius:5px;margin:3px 5px;padding:3px 0;">
<div class="gratipay-goal-progress-bar" style="position:absolute;top:3px;background-color:#008000;height:24px;border-radius:2px;"></div>
<span class="gratipay-receiving" style="position:relative;padding-left:6px;">$?.??</span>
</div>
</div>
<script src="//grtp.co/v1.js"></script>
{% endif %}
<br/>
{% if include_donate %}
<div>
<div class="sidebartext">
If you use <em>doit</em> 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.<br/>
<script data-gratipay-username="schettino72"
data-gratipay-widget="button"
src="//gttp.co/v1.js"></script>
<br/>
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 <em>schettino72</em>&#64<span>gmail.com</span><br/>
<p><em>doit</em> is 100% open-source and maintained by individuals without any company backing it...</p>
<p>Abandoned open-source project does not work for long. Thriving project requires a maintainer to keep list of issues and list of pull requests short. Financial goal is 500 USD per month to allow the maintainer working few hours a week on the project.</p>
</div>
<h3>Hire me</h3>
<div class="sidebartext">
Looking for a python developer with a proven record of designing and developing
robust and well tested applications?
The creator and maintainer of <em>doit</em> is available for hire.
Full-time, part-time or one-off job.
<br/>
Contact: <em>schettino72</em>&#64<span>gmail.com</span>
<h5>OpenCollective</h5>
<div>
<object type="image/svg+xml" data="https://opencollective.com/doit/tiers/backers.svg?avatarHeight=60&width=200"></object>
</div>
<h5>Paypal</h5>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" style="margin:auto;">