mirror of
https://github.com/TagStudioDev/TagStudio.git
synced 2026-01-28 22:01:24 +00:00
feat(ci): development tooling refresh and split documentation (#867)
* feat(nix/shell): use uv for faster evaluation * feat(contrib): define developer configurations * feat(ci): configure pre-commit to use project dependencies, add mypy * fix(docs): typo * docs: split develop and install, document integrations * nit(contrib): add shellcheck directive to envrc's * docs: move third-party dependencies to install page * nit(flake): use pythonPackages variable --------- Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
This commit is contained in:
19
contrib/.envrc-nix
Normal file
19
contrib/.envrc-nix
Normal file
@@ -0,0 +1,19 @@
|
||||
# shellcheck shell=bash
|
||||
|
||||
# If you wish to use this file, symlink or copy it to `.envrc` for direnv to read it.
|
||||
# This will use the Nix flake development shell.
|
||||
#
|
||||
# ln -s contrib/.envrc-nix .envrc
|
||||
|
||||
if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then
|
||||
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.6/direnvrc" "sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM="
|
||||
fi
|
||||
|
||||
watch_file nix/shell.nix pyproject.toml
|
||||
|
||||
use flake
|
||||
|
||||
# Only watch now, or direnv will execute again if created or modified by itself.
|
||||
watch_file "${UV_PROJECT_ENVIRONMENT:-.venv}"/bin/activate
|
||||
|
||||
# vi: ft=bash
|
||||
32
contrib/.envrc-uv
Normal file
32
contrib/.envrc-uv
Normal file
@@ -0,0 +1,32 @@
|
||||
# shellcheck shell=bash
|
||||
|
||||
# If you wish to use this file, symlink or copy it to `.envrc` for direnv to read it.
|
||||
# This will use a virtual environment created by uv.
|
||||
#
|
||||
# ln -s contrib/.envrc-uv .envrc
|
||||
|
||||
watch_file .python-version pyproject.toml uv.lock
|
||||
|
||||
venv="$(expand_path "${UV_PROJECT_ENVIRONMENT:-.venv}")"
|
||||
|
||||
if [ ! -f "${venv}"/bin/activate ]; then
|
||||
printf '%s\n' 'Generating virtual environment...' >&2
|
||||
rm -rf "${venv}"
|
||||
uv venv "${venv}"
|
||||
fi
|
||||
|
||||
# Only watch now, or direnv will execute again if created or modified by itself.
|
||||
watch_file "${venv}"/bin/activate
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
source "${venv}"/bin/activate
|
||||
|
||||
if [ ! -f "${venv}"/pyproject.toml ] || ! diff --brief pyproject.toml "${venv}"/pyproject.toml >/dev/null; then
|
||||
printf '%s\n' 'Installing dependencies, pyproject.toml changed...' >&2
|
||||
uv pip install --quiet --editable '.[dev]'
|
||||
cp pyproject.toml "${venv}"/pyproject.toml
|
||||
fi
|
||||
|
||||
pre-commit install
|
||||
|
||||
# vi: ft=bash
|
||||
17
contrib/.vscode/launch.json
vendored
Normal file
17
contrib/.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "TagStudio",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/src/tagstudio/main.py",
|
||||
"console": "integratedTerminal",
|
||||
"justMyCode": true,
|
||||
"args": [
|
||||
"-o",
|
||||
"~/Documents/Example"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user