All Projects → pydoit → Doit

pydoit / Doit

Licence: mit
task management & automation tool

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Doit

Cargo Make
Rust task runner and build tool.
Stars: ✭ 895 (-7.92%)
Mutual labels:  build-tool, build-automation, task-runner
makesure
Simple task/command runner with declarative goals and dependencies
Stars: ✭ 230 (-76.34%)
Mutual labels:  build-automation, task-runner, build-tool
Dobi
A build automation tool for Docker applications
Stars: ✭ 269 (-72.33%)
Mutual labels:  build-automation, task-runner
Cake
🍰 Cake (C# Make) is a cross platform build automation system.
Stars: ✭ 3,154 (+224.49%)
Mutual labels:  build-tool, build-automation
Realize
Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.
Stars: ✭ 4,162 (+328.19%)
Mutual labels:  build-tool, task-runner
jagen
A software engineer's workspace manager and build systems wrapper
Stars: ✭ 32 (-96.71%)
Mutual labels:  build-automation, build-tool
obs-docu
Official Open Build Service Documentation. Content gets reviewed and edited. Generated books are available at http://www.openbuildservice.org
Stars: ✭ 26 (-97.33%)
Mutual labels:  build-automation, build-tool
Task
A task runner / simpler Make alternative written in Go
Stars: ✭ 4,282 (+340.53%)
Mutual labels:  build-tool, task-runner
tainted
Tool to determine which Go packages need to be rebuilt in a monorepo
Stars: ✭ 53 (-94.55%)
Mutual labels:  build-automation, build-tool
Mask
🎭 A CLI task runner defined by a simple markdown file
Stars: ✭ 495 (-49.07%)
Mutual labels:  build-tool, task-runner
Cbt
CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala
Stars: ✭ 489 (-49.69%)
Mutual labels:  build-tool, build-automation
Buildout
Buildout is a deployment automation tool written in and extended with Python
Stars: ✭ 510 (-47.53%)
Mutual labels:  build-tool, build-automation
pyke
🔨🐍 Make-like build utility for Python projects with extensive DSL features
Stars: ✭ 13 (-98.66%)
Mutual labels:  build-automation, build-tool
Xake
Another MAKE utility implementation on F#, fully declarative with no-brain parallelism, inspired by Shake
Stars: ✭ 24 (-97.53%)
Mutual labels:  build-automation, build-tool
alfred
(v0.2) Even Batman needs a little help. Task runner. Automator. Build system.
Stars: ✭ 62 (-93.62%)
Mutual labels:  task-runner, build-tool
Air
☁️ Live reload for Go apps
Stars: ✭ 5,257 (+440.84%)
Mutual labels:  build-tool, task-runner
rote
Automate everything.
Stars: ✭ 66 (-93.21%)
Mutual labels:  task-runner, build-tool
nss-run
nss-run (not so simple run) is a very simplistic build tool.
Stars: ✭ 14 (-98.56%)
Mutual labels:  task-runner, build-tool
Gradle In Action Source
Source code for the Manning book "Gradle in Action"
Stars: ✭ 483 (-50.31%)
Mutual labels:  build-tool, build-automation
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (-28.5%)
Mutual labels:  build-tool, build-automation

================ README

.. display some badges

.. image:: https://img.shields.io/pypi/v/doit.svg :target: https://pypi.python.org/pypi/doit

.. image:: https://github.com/pydoit/doit/actions/workflows/ci.yml/badge.svg?branch=master :target: https://github.com/pydoit/doit/actions/workflows/ci.yml?query=branch%3Amaster

.. image:: https://codecov.io/gh/pydoit/doit/branch/master/graph/badge.svg?token=wxKa1h11zn :target: https://codecov.io/gh/pydoit/doit

.. image:: https://xscode.com/assets/promo-banner.svg :target: https://xscode.com/schettino72/doit

doit - automation tool

doit comes from the idea of bringing the power of build-tools to execute any kind of task

Sample Code

Define functions returning python dict with task's meta-data.

Snippet from tutorial <http://pydoit.org/tutorial_1.html>_:

.. code:: python

def task_imports(): """find imports from a python module""" for name, module in PKG_MODULES.by_name.items(): yield { 'name': name, 'file_dep': [module.path], 'actions': [(get_imports, (PKG_MODULES, module.path))], }

def task_dot(): """generate a graphviz's dot graph from module imports""" return { 'targets': ['requests.dot'], 'actions': [module_to_dot], 'getargs': {'imports': ('imports', 'modules')}, 'clean': True, }

def task_draw(): """generate image from a dot file""" return { 'file_dep': ['requests.dot'], 'targets': ['requests.png'], 'actions': ['dot -Tpng %(dependencies)s -o %(targets)s'], 'clean': True, }

Run from terminal::

$ doit list dot generate a graphviz's dot graph from module imports draw generate image from a dot file imports find imports from a python module $ doit . imports:requests.models . imports:requests.init . imports:requests.help (...) . dot . draw

Project Details

license

The MIT License Copyright (c) 2008-2021 Eduardo Naufel Schettino

see LICENSE file

developers / contributors

see AUTHORS file

install

doit is tested on python 3.6 to 3.9.

The last version supporting python 2 is version 0.29.

.. code:: bash

$ pip install doit

dependencies

  • cloudpickle
  • pyinotify (linux)
  • macfsevents (mac)

Tools required for development:

  • git * VCS
  • py.test * unit-tests
  • coverage * code coverage
  • sphinx * doc tool
  • pyflakes * syntax checker
  • doit-py * helper to run dev tasks

development setup

The best way to setup an environment to develop doit itself is to create a virtualenv...

.. code:: bash

doit$ virtualenv dev doit$ source dev/bin/activate

install doit as "editable", and add development dependencies from dev_requirements.txt:

.. code:: bash

(dev) doit$ pip install --editable . (dev) doit$ pip install --requirement dev_requirements.txt

tests

Use py.test - http://pytest.org

.. code:: bash

$ py.test

documentation

doc folder contains ReST documentation based on Sphinx.

.. code:: bash

doc$ make html

They are the base for creating the website. The only difference is that the website includes analytics tracking. To create it (after installing doit):

.. code:: bash

$ doit website

spell checking

All documentation is spell checked using the task spell:

.. code:: bash

$ doit spell

It is a bit annoying that code snippets and names always fails the check, these words must be added into the file doc/dictionary.txt.

The spell checker currently uses hunspell, to install it on debian based systems install the hunspell package: apt-get install hunspell.

profiling

.. code:: bash

python -m cProfile -o output.pstats which doit list

gprof2dot -f pstats output.pstats | dot -Tpng -o output.png

releases

Update version number at:

  • doit/version.py
  • setup.py
  • doc/conf.py

.. code:: bash

python setup.py sdist python setup.py bdist_wheel twine upload dist/doit-X.Y.Z.tar.gz twine upload dist/doit-X.Y.Z-py3-none-any.whl

contributing

On github create pull requests using a named feature branch.

Financial contribution to support maintenance welcome. https://xscode.com/schettino72/doit

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].