Skip to main content

Task executor - balance between Makefile and Gradle.

Project description

https://api.travis-ci.com/riotkit-org/riotkit-do.svg?branch=master

Task executor - balance between Makefile and Gradle [see documentation]

docs/makefile.png
# via PIP
pip install rkd

# via PIPENV
pipenv install rkd

Please check available releases there: https://pypi.org/project/rkd/#history

NOTICE: This project is in testing stage. There is no stable release yet, but it will come very soon. The API can change in upcoming days.

Goals:

  • Define tasks as simple as in Makefile

  • Reuse code as simple as in Gradle (using extensions that provides tasks. Extensions are installable from PIP)

  • Simple configuration in Python

  • Write tasks code in Python as simple as possible

Rules

  • No hooks eg. task.executeAfter(otherTask), no complex dependencies

  • No in-memory state between tasks. State could be only changed in files/database/kv-store like it is in other build systems

  • No dynamic tasks names eg. by turning on Publish component it should not create tasks eg. :publishIWAToDockerRegistry (where IWA is the project name)

  • Don’t pack too many features into the core, do this in external modules. Keep the RKD core clean!

  • Full static analysis, you can work on makefile.py and on task’s code in PyCharm with full code completion!

  • Do early validation. Runtime validation for long running builds is a pain-in-the-ass for the user.

  • Show clear error messages as much as it is possible. Task not found? Tell the user - do not leave a stack trace. Import error in makefile.py? Tell the user + add stack trace. RESPECT TIME OF ALL OF US! :)

  • Do not overuse libraries in RKD core - it must be installable in any environment, including Docker. Libraries count should be small, and the libraries cannot depend on GCC/G++

Documentation

Please read the documentation here.

From authors

We are grassroot activists for social change, so we created RKD especially in mind for those fantastic initiatives:

Special thanks to Working Class History for very powerful samples that we could use in our unit tests.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rkd-0.8.0.0b2.dev27.tar.gz (736.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page