Files
drhider/DEVELOPMENT.md
T

3.2 KiB

Порядок действий при изменении кода

Читать перед ЛЮБОЙ правкой.


ЗАПРЕЩЕНО

  1. Менять код без «делай»
  2. Действовать по догадкам («я бы сделал так», «можно попробовать»)
  3. Удалять файлы/папки без разрешения
  4. «Улучшать» рабочий код без прямого разрешения
  5. Использовать sed
  6. Откладывать commit/push «на потом»
  7. Игнорировать проверку синтаксиса перед push

ПОРЯДОК ПРИ ЛЮБОМ ИЗМЕНЕНИИ

Шаг 1 — План

Описать что меняем → получить «делай»

Шаг 2 — Правка

Вносим изменения. Только то, что обговорено. Никакой самодеятельности.

Шаг 3 — Проверка синтаксиса

python3 -c "import py_compile; py_compile.compile('путь/к/файлу.py', doraise=True)"

КАЖДЫЙ изменённый .py файл.

Шаг 4 — Проверка импорта

cd /home/naeel/nubes/drhider && python3 -c "from drhider import obfuscate_files, LLMClient; print('OK')"

Шаг 5 — Проверить соседей

После replace_string_in_file — прочитать соседние строки, убедиться что не затёр соседнюю функцию/класс.

Шаг 6 — commit + push (СРАЗУ)

cd /home/naeel/nubes/drhider
git add -A
git commit -m "подробное описание что и зачем"
git push

Без исключений. Никаких накоплений.

Шаг 7 — Документировать

Записать в History/ что сделано:

  • Отдельный .md файл
  • Что планировалось → что сделано → в чём ошибся

Шаг 8 — Redeploy

Зайти в UI Штурвала → Redeploy drhider.


🔧 Команды в терминале — всегда с таймаутами

curl --max-time 30 ...
ssh -o ConnectTimeout=10 ...
timeout 10 grep ... file.txt

📦 Проверка ВСЕХ файлов разом

cd /home/naeel/nubes/drhider
python3 -c "
import py_compile, os
for root, dirs, files in os.walk('.'):
    for f in files:
        if f.endswith('.py'):
            py_compile.compile(os.path.join(root, f), doraise=True)
            print(f'OK: {os.path.join(root, f)}')
"

🏷️ Версионирование

Версия в site/app.py (переменная VERSION). Менять при любом изменении кода, влияющем на поведение.


📝 Пример хорошего коммита

git commit -m "generators: добавил generate_snils — генератор фиктивных СНИЛС

- Новый файл drhider/generators/snils.py
- Добавлен паттерн в config.py → ENTITY_PATTERNS
- Добавлен в generators/__init__.py → ENTITY_GENERATORS
- bump VERSION 2.0.0 → 2.0.1"