Reference

Configuration & environment

Environment variables

VariableDefaultEffect
DEX_TROVE_ROOT—Use this directory as the trove (must contain catalog.json and the kind folders). Overrides the installed package and the checkout.
DEX_TROVE_CACHE$XDG_CACHE_HOME or ~/.cache, + /dex-troveWhere upstream sources are cloned (<cache>/sources/<id>)
XDG_CACHE_HOME~/.cacheFallback base for the cache
DEX_TROVE_IGNORE$XDG_CONFIG_HOME/dex-trove/ignore (~/.config/…)User-level ignore rules ([source:]pattern per line), merged with each source’s own .dexignore
UV_PUBLISH_TOKEN, UV_PUBLISH_TOKEN_TESTPYPI—Manual publish tokens (make publish-*), read from .env
SITE_BASE/Base path for the Astro build (/Dex-Trove/ on GitHub Pages)

How the trove is located

dex_trove.paths.trove_root():

  1. $DEX_TROVE_ROOT, if set;
  2. the installed package directory, if it contains catalog.json (normal pip install);
  3. <checkout>/trove, when run inside a Dex-Trove checkout (found by walking up to sources.yaml + src/dex_trove/);
  4. the package directory (empty catalog).

Write commands (learn, notices, catalog, docs export) always operate on a checkout.

Package extras

ExtraInstallsUse
(none)PyYAML, typer, richthe CLI and the library
anankeananke-plexusstrict manifest validation in dex validate; the ananke CLI for dex ananke sync
devpytest, pytest-cov, ruff, mypy, types-PyYAML, hatchlingdevelopment

Make targets

TargetDoes
installuv sync --all-extras
lint / format / format-checkruff
typecheckmypy (strict)
test / coveragepytest (HTML coverage in htmlcov/)
validatedex validate
verifylint + format-check + typecheck + test + validate
learn / noticesdex learn / dex notices
trivy-scan / trivy-scan-json / trivy-scan-sarifTrivy on package code + deps (skips trove/)
securityTrivy + pip-audit
build / build-check / sbomuv build, twine check, CycloneDX SBOM
docs-export / docs-install / docs-build / docs-servethe Astro site
publish-testpypi / publish-pypimanual publish (runs verify + build-check first)
cleanremove build and cache outputs

Files

PathPurpose
sources.yamlsource map (reference)
trove/the library (item format, trove files)
THIRD_PARTY_NOTICES.mdaggregated attribution
.env / .env.examplelocal publish tokens (gitignored) / template
.trivyignore, .gitleaks.tomlscanner configuration
.pre-commit-config.yamlruff + dex validate hooks (never rewrites trove/)
uv.locklocked dependencies
website/docs site
~/.cache/dex-trove/sources/<id>upstream clones
<source root>/.dexignoreper-source ignore rules, kept next to the content (outside this repo)
~/.config/dex-trove/ignoreuser-level ignore rules

Entry points

GroupNameTarget
console_scriptsdexdex_trove.cli:app
ananke.trovesdex-trovedex_trove.paths:trove_root

Edit this page on GitHub ↗