= Fate
The operating system-level command scheduler and manager.
TODO: Objectives/justifications; features; installation and quick start-up....
== Creating tasks
Fate tasks are merely executables available through the file system. Tasks abiding by the framework's expectations may be added with a minimum of effort.
=== The contract
TODO
=== Testing
==== execute
Any executable may be invoked (with optional arguments) by the Fate `execute` command:
[source,sh]
----
fate debug execute [options] command [arguments]
----
The above generates an execution report for use in development and debugging.
Options such as `-i|--stdin` may be useful to supply measurment parameters to the executable according to the link:#_the_contract[framework's contract].
==== run
Once added to Fate configuration, executables become _tasks_. These may be invoked ad-hoc by the `run` command:
[source,sh]
----
fate debug run [options] task
----
The options and output of the `run` command are similar to those of `execute`.
Unlike with scheduled tasks, the results of tasks performed by `run` are not, by default, persisted to file. Either specify option `--record` to capture these as configured, or option `--stdout` to capture these at an arbitrary path.
== Development
=== Extending the framework
==== Set-up
Fate is implemented in https://www.python.org/[Python] and the framework's distribution is managed via https://python-poetry.org/[Poetry].
*Python v3.10* may be supplied by an operating system package manager, by https://www.python.org/[python.org], or by a utility such as https://github.com/pyenv/pyenv[pyenv]; pyenv is _recommended_ for development but _not required_.
With Python installed, *Poetry* may be installed https://python-poetry.org/docs/#installation[according to its instructions].
TIP: If you are managing your own virtual environment, _e.g._ via https://github.com/pyenv/pyenv-virtualenv[pyenv-virtualenv], then this step may be as simple as `pip install poetry`. However, this tooling is not required, and Poetry offers its own automated set-up, as well as management of virtual environments.
Finally, from the root directory of a repository clone, the framework may be installed in development mode:
[source,sh]
----
poetry install
----
NOTE: Poetry will use any existing, activated virtual environment, or create its own into which dependencies will be installed.
The `fate` command is now available for use in your development environment.
[IMPORTANT]
====
For simplicity, it will be presumed that `fate` is available on your `PATH`. However, this depends upon activation of your virtual environment.
A virtual environment under management by Poetry may be activated via sub-shell with:
[source,sh]
----
poetry shell
----
Alternatively, any command installed into Poetry's virtual environment may be executed ad-hoc via the `run` command:
[source,sh]
----
poetry run fate ...
----
====
Metadata
Release files for fate-scheduler 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fate_scheduler-1.1.0.tar.gz | 62.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fate_scheduler-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 150.7 kB
Release files / fate_scheduler-1.1.0.tar.gz
| Download URL | fate_scheduler-1.1.0.tar.gz |
|---|---|
| Size | 62.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ec1d03a116a87cdd6bcb4572fe08c4f045296d210172d278aae38267c3490f65
|
|
BLAKE2b-256 checksum How to use checksums |
cb4fd4f29d5bbc7f0cc0af9e648237ae305cc3c48da7899ad7c0e157196cff02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 9, 2025.
Transparency logRelease files / fate_scheduler-1.1.0-py3-none-any.whl
| Download URL | fate_scheduler-1.1.0-py3-none-any.whl |
|---|---|
| Size | 87.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6104b70bd5262b8b40e8bf759936984137a37e6c6d5020f5605d5299ea244a20
|
|
BLAKE2b-256 checksum How to use checksums |
dd71317f3a7213b3e308ef3bfd9010827359b1279ed344cdd90c04d43bc940b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 9, 2025.
Transparency logSecurity for fate-scheduler 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for fate_scheduler-1.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 9, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.