Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

tools

A monorepo of independent custom tools. Each tool lives in its own top-level folder as a self-contained uv package with its own dependencies, lockfile, and virtual environment — changing one tool never affects another.

Adding a new tool

scripts/new-tool.sh <tool-name>

This scaffolds <tool-name>/ with a pyproject.toml, src/<tool_name>/, and a tests/ dir (pytest pre-installed as a dev dependency). The tool is pinned to one minor Python version behind the newest release uv tracks (e.g. if 3.15 is newest, the tool pins to 3.14), and its .venv is created with uv venv --seed. The generated README.md records the exact version and how to move to a newer minor later.

Building

scripts/build.sh                 # build only tools that changed
scripts/build.sh <tool> [tool2]  # build specific tool(s)
scripts/build.sh --all           # build every tool

"Changed" means: files changed in the working tree (staged or unstaged, including untracked), falling back to files changed in the last commit if the working tree is clean. Building a tool runs uv sync, its test suite (if present), then uv build to produce a wheel/sdist in that tool's own dist/.

Working on a single tool

cd <tool-name>
uv add <dependency>   # scoped to this tool only
uv run pytest
uv run <entry-point>

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages