mirror of
https://github.com/kuhyx/signal-bot.git
synced 2026-11-10 20:27:17 +01:00
"python tool/tagger.py --untagged" died with ModuleNotFoundError: fastapi. The dependencies live in .venv and nothing said so. run.sh had the same hole and answered it by printing the two commands to type and exiting 1 -- which is the same rule broken one step further along: a script owns its dependencies, and making the user be the installer is not owning them. scripts/ensure_venv.sh creates .venv and installs the project editable if the interpreter cannot already import fastapi and signal_bot. Idempotent and cheap: the normal case is two file tests and one import check, 0.17s, so entry points call it unconditionally. tag.sh is the tagger's entry point and run.sh now uses the same helper. Verified on a clone with no .venv at all: ./tag.sh --help created the environment, installed the project and printed the usage. Editable on purpose -- a later git pull updates what the tagger runs, which is the same reason install.sh does it that way in the sibling repos. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WBrE1b9HvFw3xvG9bJiDFt |
||
|---|---|---|
| .. | ||
| check_coverage.sh | ||
| check_dependency_freshness.sh | ||
| check_file_length.sh | ||
| check_md_naming.sh | ||
| check_no_binaries.sh | ||
| check_personal_data.py | ||
| check_personal_data.sh | ||
| cold_start.sh | ||
| e2e.sh | ||
| ensure_venv.sh | ||
| install_service.sh | ||
| lib_signal.sh | ||
| live_smoke.sh | ||
| personal_data_sources.py | ||
| prime_profile.sh | ||
| register_bot.sh | ||
| selftest.sh | ||
| signal_api_watchdog.sh | ||
| signal-api-watchdog.service | ||
| signal-api-watchdog.timer | ||
| signal-bot.service | ||
| test_watchdog.sh | ||