Skip to content

Commit 4bfc8ed

Browse files
committed
chore: standardize task setup, make clone idempotent
Split clone into clone (full re-clone) and clone:if-missing (skips when parsers/ is non-empty). Update setup to use rust:install, alef setup, prek install, and clone:if-missing in the correct order. Add precondition comment block documenting required tools.
1 parent 02d086c commit 4bfc8ed

2 files changed

Lines changed: 21 additions & 13 deletions

File tree

Taskfile.yml

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,37 +34,45 @@ vars:
3434
VERSION:
3535
sh: python3 -c "import tomllib; print(tomllib.load(open('Cargo.toml','rb'))['workspace']['package']['version'])"
3636

37+
# Preconditions for task setup:
38+
# - Rust toolchain (rustup) — install via https://rustup.rs
39+
# - alef CLI — install via cargo install --git https://github.com/kreuzberg-dev/alef
40+
# - prek — install via cargo install prek
41+
# - uv (Python package manager) — for clone_vendors.py and other Python scripts
42+
# - git, network access for grammar cloning
43+
# - Per-language tools auto-skipped via alef preconditions
44+
3745
tasks:
3846
default:
3947
desc: Show available tasks
4048
cmds:
4149
- task --list
4250

4351
setup:
44-
desc: "Install all dependencies and initialize project. Idempotent - safe to re-run anytime."
52+
desc: "Install all dependencies and dev tools"
4553
cmds:
46-
- echo "Installing pre-commit hooks..."
54+
- task: rust:install
55+
- alef setup
4756
- prek install
4857
- prek install --hook-type commit-msg
49-
- echo "Cloning parser sources..."
50-
- task: clone
51-
- echo "Setting up language tools..."
52-
- alef setup
53-
- echo "Generating AI rules..."
54-
- task: ai-rulez
55-
- echo "Setup complete - safe to re-run anytime"
58+
- task: clone:if-missing
5659

5760
ai-rulez:
5861
desc: Generate ai-rulez configuration files (CLAUDE.md, etc.)
5962
cmds:
6063
- npx -y ai-rulez@latest generate
6164

6265
clone:
63-
desc: Clone all vendor parser repositories
66+
desc: "Clone all language grammar repositories (full re-clone)"
67+
cmds:
68+
- uv run --no-sync scripts/clone_vendors.py
69+
70+
clone:if-missing:
71+
desc: "Clone only missing language grammar repositories"
72+
status:
73+
- test -d parsers && [ "$(ls -A parsers 2>/dev/null | wc -l)" -gt 0 ]
6474
cmds:
6575
- uv run --no-sync scripts/clone_vendors.py
66-
sources:
67-
- sources/language_definitions.json
6876

6977
build:
7078
desc: Build all crates (dynamic mode, all languages)

packages/python/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)