Daktari is a tool to help the initial setup and ongoing maintenance of developer environments. It runs a series of checks (for example, that required software is installed) and provides suggestions on how to fix the issue if the check fails.
Configuration
In the root of the project repository, create a .daktari.py configuration file listing the checks you want run. For example,
from daktari.checks.git import *
version = "0.0.362"
title = "My Project"
checks = [
GitInstalled(),
GitLfsInstalled(),
GitLfsSetUpForUser(),
GitLfsFilesDownloaded(),
GitCryptInstalled(),
]
Then run daktari to diagnose your environment:
$ daktari
✅ [git.installed] Git is installed
✅ [git.lfs.installed] Git LFS is installed
✅ [git.lfs.setUpForUser] Git LFS is set up for the current user
✅ [git.lfs.filesDownloaded] Git LFS files have been downloaded
❌ [git.crypt.installed] git-crypt is not installed
┌─💡 Suggestion ─────────┐
│ brew install git-crypt │
└────────────────────────┘
Custom Check
You can write a custom check as a Python class within .daktari.py, and include it in your list of checks. Example of a check implementation:
class GitCryptInstalled(Check):
name = "git.crypt.installed"
depends_on = [GitInstalled]
suggestions = {
OS.OS_X: "<cmd>brew install git-crypt</cmd>",
OS.UBUNTU: "<cmd>sudo apt install git-crypt</cmd>",
OS.GENERIC: "Install git-crypt (https://www.agwa.name/projects/git-crypt/)",
}
def check(self):
return self.verify(can_run_command("git crypt version"), "git-crypt is <not/> installed")
Testing Daktari changes locally
Having cloned the repo into ~/daktari, you can make use of PYTHONPATH to run daktari using your local changes.
To do this, navigate into a directory that has a .daktari.py (e.g. another repository intending to use your change) and run:
PYTHONPATH=~/daktari python3 -m daktari --debug
Release instructions
Daktari is continuously deployed via a github action - see release.yaml. In case of a need to manually release, the steps are:
bumpversion --verbose patch
python -m build
twine check dist/*
twine upload dist/*
Metadata
Release files for daktari 0.0.362
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 | Actions |
|---|---|---|---|---|
| daktari-0.0.362.tar.gz | 48.5 kB | Without provenance | Details for daktari-0.0.362.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| daktari-0.0.362-py3-none-any.whl | Python 3 | none | any | Details for daktari-0.0.362-py3-none-any.whl |
Total release size: 117.5 kB
Release files / daktari-0.0.362.tar.gz
| Download URL | daktari-0.0.362.tar.gz |
|---|---|
| Size | 48.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3212dbec5b7672216c50aa9fe7bddbde22728ef3ea97a91b46973fced37a6284
|
|
BLAKE2b-256 checksum How to use checksums |
6d2596a0d0f0b9fad7b91ecf2b634635b81eed40d5b6dafc449da1b6a8105a28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / daktari-0.0.362-py3-none-any.whl
| Download URL | daktari-0.0.362-py3-none-any.whl |
|---|---|
| Size | 69.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e7311e57f558b1a93c3c7ca108927a5f9e5fa3e3e519654ccdc011ab7fdb713
|
|
BLAKE2b-256 checksum How to use checksums |
30d788fe88340972742504594cefd67ceee97d6f216e8ddd0fea67159ff6f211
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for daktari 0.0.362
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.