Helps with Python requirements (reqs) files:
reqs bootstrap:- Install uv (default) or upgrade pip & install pip-tools to active venv
- Ensures reqs will compile lock files using the version of Python the project is using
reqs compile:- Compile .in reqs files into .txt "lock" files
- Considers file modification times and file dependencies (when -r or -c used)
reqs sync:- Compile (default, optional)
- Sync active virtualenv with lock files
- When "sync_pipx" is true: will make the project's scripts available on the local system by installing/upgrading as an editable package with pipx.
Intended to be installed at the user level, not per app.
pipx install reqs-cli(recommended)[uv] pip install --user reqs-cli
Configure using pyproject.toml:
# The options shown are the default values and DO NOT need to be specified
# if the default is sufficient.
[tool.reqs]
# Path to the directory containing the .in and .txt requirements files. Relative to pyproject.toml.
dpath = 'requirements'
# Use pipx to install an editable version of the project. True for tools like reqs and env-config
# that a developer would want available for different projects. False for most client projects
# deployed on servers.
sync_pipx = false- Can be updated from copier-py-package
hatch run copier:update: latest tagged version in GitHubhatch run copier:update-head: head of master in GitHub
- Release:
mise run bump [-- --help]to update version, tag, and push to GitHub- GitHub workflow does the rest