Files
SnapOtter/apps/docs/ru/guide/contributing.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
2026-07-11 13:52:47 +08:00

9.5 KiB
Raw Blame History

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
Как участвовать в развитии SnapOtter. Отчёты об ошибках, запросы функций, pull request'ы и требования CLA. 528802503035 human fc5a31dca269

Участие

Спасибо за интерес к участию в проекте. Это руководство описывает, как участвовать, что мы принимаем и с чего начать.

Способы участия

Issues (без настройки)

  • Отчёты об ошибках - Что-то сломалось? Откройте отчёт об ошибке с шагами воспроизведения.
  • Запросы функций - Есть идея? Начните обсуждение, чтобы сообщество могло высказаться и проголосовать за неё.
  • Проблемы с переводом - Заметили неверный или отсутствующий перевод? Откройте issue о переводе.
  • Проблемы с документацией - Что-то не так в документации? Откройте issue о документации.

Код (требует CLA)

Мы принимаем pull request'ы для:

Тип Процесс
Исправления ошибок Откройте PR напрямую (сошлитесь на issue, если он есть)
Новые переводы Откройте PR напрямую (см. руководство по переводу)
Улучшения документации Откройте PR напрямую
Улучшения покрытия тестами Откройте PR напрямую
Новые инструменты или функции Сначала начните обсуждение; мейнтейнер превращает одобренные идеи в отслеживаемый issue до того, как вы начнёте писать код
Рефакторинг или изменения архитектуры Сначала начните обсуждение и дождитесь одобрения мейнтейнера перед написанием кода

Что мы не принимаем

  • Изменения в CI/CD-пайплайнах, конфигурации релизов или конфигурации линтера/компилятора
  • PR'ы без подписанного Contributor License Agreement
  • PR'ы с изменениями более чем на 400 строк (разбивайте большую работу на меньшие PR'ы)
  • Функции, которые не были предварительно обсуждены и одобрены
  • Изменения в packages/ai/ без предварительного обсуждения

Contributor License Agreement

Прежде чем мы сможем принять ваш первый PR, вы должны подписать наше индивидуальное CLA. Это одноразовое требование.

Почему: SnapOtter распространяется под двойной лицензией (AGPLv3 + коммерческая). CLA предоставляет нам право распространять ваш вклад под обеими лицензиями. Вы сохраняете полное авторское право на свою работу.

Как: Когда вы откроете свой первый PR, бот CLA Assistant оставит комментарий со ссылкой. Нажмите на неё, ознакомьтесь с соглашением и подпишите его своей учётной записью GitHub. Это займёт 30 секунд.

Если вы вносите вклад от имени работодателя и он сохраняет права на интеллектуальную собственность в отношении вашей работы, свяжитесь с contact@snapotter.com, чтобы оформить корпоративное CLA перед отправкой.

Начало работы

Предварительные требования

  • Node.js 22+
  • pnpm 9+
  • Python 3.11+ (только для AI-инструментов)
  • Docker (опционально, для полного интеграционного тестирования)

Настройка

# Fork and clone
git clone https://github.com/<your-username>/snapotter.git
cd snapotter

# Start Postgres + Redis for local dev
docker compose -f docker-compose.dev.yml up -d

# Install dependencies
pnpm install

# Start dev servers (web on :1349, API on :13490)
pnpm dev

Запуск проверок

Перед отправкой PR убедитесь, что все проверки проходят локально:

pnpm lint          # Biome lint + format check
pnpm typecheck     # TypeScript across monorepo
pnpm test          # Vitest unit + integration tests

Процесс pull request

  1. Сделайте форк репозитория и создайте ветку от main (feat/my-feature или fix/issue-123)
  2. Вносите изменения сфокусированными, пригодными для ревью коммитами, используя conventional commits
  3. Добавьте или обновите тесты для своих изменений
  4. Запустите pnpm lint && pnpm typecheck && pnpm test локально
  5. Откройте PR против main и заполните шаблон
  6. Подпишите CLA, если будет предложено
  7. Дождитесь прохождения CI и ревью от мейнтейнера

Ожидания по ревью

  • Мы стремимся отвечать на PR'ы в течение 7 дней
  • Небольшие, сфокусированные PR'ы проходят ревью быстрее
  • Если вы не получили ответа в течение 7 дней, оставьте комментарий с упоминанием в треде
  • Мы можем запросить изменения, предложить другой подход или закрыть PR, если он не соответствует направлению проекта

После того как ваш PR будет принят

Ваш вклад войдёт в следующий релиз и будет упомянут в списке изменений.

Хорошие первые задачи

Ищете, над чем поработать? Загляните в наши хорошие первые задачи, подходящие для новичков, или в help wanted для более крупных задач, где мы будем рады помощи сообщества.

Стиль кода

  • Biome отвечает за форматирование и линтинг (двойные кавычки, точки с запятой, отступ в 2 пробела)
  • Pre-commit-хук автоматически запускает biome check --write на staged-файлах
  • Если линтер ругается, исправляйте код (не изменяйте конфигурацию Biome)
  • ES-модули везде (import/export)
  • Conventional commits: feat:, fix:, refactor:, docs:, test:, chore:

Полные детали архитектуры смотрите в руководстве разработчика.

Безопасность

Не открывайте публичный PR или issue для уязвимостей безопасности. Сообщайте о них приватно через GitHub Security Advisories или по email contact@snapotter.com. Полные детали смотрите в SECURITY.md.

Вопросы?