Search K
Участие
Спасибо за интерес к участию в проекте. Это руководство описывает, как участвовать, что мы принимаем и с чего начать.
Способы участия
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 секунд.
Если вы вносите вклад от имени работодателя и он сохраняет права на интеллектуальную собственность в отношении вашей работы, свяжитесь с [email protected], чтобы оформить корпоративное CLA перед отправкой.
Начало работы
Предварительные требования
- Node.js 22+
- pnpm 9+
- Python 3.11+ (только для AI-инструментов)
- Docker (опционально, для полного интеграционного тестирования)
Настройка
bash
# 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 убедитесь, что все проверки проходят локально:
bash
pnpm lint # Biome lint + format check
pnpm typecheck # TypeScript across monorepo
pnpm test # Vitest unit + integration testsПроцесс pull request
- Сделайте форк репозитория и создайте ветку от
main(feat/my-featureилиfix/issue-123) - Вносите изменения сфокусированными, пригодными для ревью коммитами, используя conventional commits
- Добавьте или обновите тесты для своих изменений
- Запустите
pnpm lint && pnpm typecheck && pnpm testлокально - Откройте PR против
mainи заполните шаблон - Подпишите CLA, если будет предложено
- Дождитесь прохождения 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 [email protected]. Полные детали смотрите в SECURITY.md.
