Skip to content

Вклад в Hatcher

Спасибо за ваш интерес к вкладу в Hatcher! Вы присоединяетесь к движению по построению будущего разработки программного обеспечения в эпоху ИИ - будущего, где разработчики сохраняют абсолютный контроль, используя силу усиления ИИ. Это руководство предоставляет практические шаги для начала, но если вы еще не сделали этого, мы рекомендуем прочитать нашу Философию, чтобы понять "почему" за нашей работой.

Внося вклад в Hatcher, вы не просто пишете код - вы помогаете определить, как человечество будет создавать программное обеспечение в эпоху ИИ. Каждый вклад, будь то исправление бага, функция или улучшение документации, продвигает нашу миссию контролируемого усиления.

Кодекс поведения

Участвуя в этом проекте, вы соглашаетесь соблюдать наш Кодекс поведения. Пожалуйста, прочитайте его перед вкладом.

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

Настройка разработки

  1. Fork и Clone

    bash
    git clone https://github.com/your-username/dx-engine.git
    cd dx-engine
  2. Установка зависимостей

    bash
    pnpm install
  3. Запуск сервера разработки

    bash
    pnpm dev

Структура проекта

dx-engine/
├── apps/                           # Пакеты приложений
│   ├── electron/                   # Основной процесс Electron
│   ├── web/                       # Процесс рендерера (Vue 3 + TypeScript)
│   ├── preload/                   # Preload скрипты для Electron
│   └── docs/                      # Сайт документации VitePress
├── universal/                      # Общие библиотеки и системы
│   ├── terminal-system/           # Эмуляция и управление терминалом
│   ├── storage/                   # Слой абстракции хранилища
│   ├── git-genius/               # Операции Git и временная шкала
│   ├── shared-rendering/         # Общие утилиты рендеринга
│   └── shared-utils/             # Общие утилиты
├── tooling/                       # Инструменты разработки и сборки
│   ├── vite-plugin/              # Пользовательские плагины Vite
│   ├── translation-system/       # Инструменты i18n и перевода
│   └── puppeteer-google-translate/ # Автоматизированный перевод
├── scripts/                       # Скрипты сборки, тестов и утилит
├── brand/                         # Ресурсы бренда (логотипы, иконки и т.д.)
└── types/                         # Общие определения типов TypeScript

Способы внести вклад

Сообщение о багах

При сообщении о багах, пожалуйста, включите:

  • Четкое описание: Что произошло vs. что вы ожидали
  • Шаги для воспроизведения: Детальные шаги для воссоздания проблемы
  • Окружение: ОС, версия Node.js, версия pnpm
  • Скриншоты: Если применимо, включите визуальные доказательства

Используйте наш шаблон отчета о баге при создании issues.

Запросы функций

Мы приветствуем запросы функций! Пожалуйста, включите:

  • Случай использования: Почему нужна эта функция?
  • Предлагаемое решение: Как это должно работать?
  • Альтернативы: Какие другие подходы вы рассматривали?

Используйте наш шаблон запроса функции.

Вклад кода

Перед началом

  1. Проверьте существующие issues: Ищите связанные issues или запросы функций
  2. Обсудите крупные изменения: Откройте issue для обсуждения значительных изменений
  3. Начните с малого: Начните с небольших, сфокусированных вкладов

Рабочий процесс разработки

  1. Создайте ветку

    bash
    git checkout -b feature/your-feature-name
  2. Внесите изменения

    • Следуйте нашим стандартам кодирования (см. ниже)
    • Напишите тесты для новой функциональности
    • Обновите документацию по мере необходимости
  3. Протестируйте свои изменения

    bash
    pnpm build
    pnpm test
  4. Зафиксируйте свои изменения

    bash
    git commit -m "feat: add amazing new feature"

    Мы следуем формату Conventional Commits.

  5. Отправьте и создайте PR

    bash
    git push origin feature/your-feature-name

Стандарты кодирования

Hatcher следует строгим стандартам кодирования для обеспечения согласованности, поддерживаемости и высококачественного кода во всем проекте.

📋 Полное руководство по стандартам кодирования

Краткий справочник

TypeScript

  • Используйте TypeScript для всего нового кода с включенным strict режимом
  • Предпочитайте интерфейсы типам для форм объектов
  • Используйте значимые, описательные имена для переменных и функций
  • Включайте JSDoc комментарии для всех публичных API

Vue.js

  • Используйте Composition API с синтаксисом <script setup>
  • Определяйте props и emits с интерфейсами TypeScript
  • Предпочитайте composables для повторно используемой логики
  • Следуйте структуре однофайловых компонентов: script → template → style

Стилизация

  • Используйте scoped стили для компонентно-специфичного CSS
  • Следуйте методологии BEM для именования классов
  • Используйте CSS custom properties для темизации
  • Предпочитайте flexbox и CSS Grid для макетов

Соглашения Git

  • Следуйте формату Conventional Commits
  • Используйте описательные имена веток: feature/, fix/, docs/, refactor/
  • Держите коммиты атомарными и сфокусированными на одном изменении

Инструменты качества кода

Мы используем автоматизированные инструменты для применения стандартов:

bash
# Линтинг и исправление проблем стиля кода
pnpm lint:fix

# Проверка типов
pnpm typecheck

# Запуск всех тестов
pnpm test

# Форматирование кода
pnpm format

Хуки pre-commit

Husky запускает автоматические проверки перед каждым коммитом:

  • ESLint для качества кода
  • Компиляция TypeScript
  • Prettier для форматирования
  • Юнит-тесты для критических путей

Для детальных руководств, примеров и лучших практик см. нашу документацию Стандарты кодирования.

Документация

Типы документации

  • Комментарии к коду: Объясняйте сложную логику
  • README файлы: Обзор и инструкции по настройке
  • Документация API: Документируйте публичные интерфейсы
  • Руководства пользователя: Практические руководства для конечных пользователей

Руководства по написанию

  • Используйте четкий, краткий язык
  • Включайте примеры кода
  • Поддерживайте документацию в актуальности с изменениями кода
  • Тестируйте все примеры кода

Процесс пулл-реквестов

Перед отправкой

  • [ ] Код следует стандартам проекта
  • [ ] Тесты проходят локально
  • [ ] Документация обновлена
  • [ ] Изменения сфокусированы и атомарны

Шаблон описания PR

markdown
## Описание

Краткое описание изменений

## Тип изменения

- [ ] Исправление бага
- [ ] Новая функция
- [ ] Критическое изменение
- [ ] Обновление документации

## Тестирование

- [ ] Юнит-тесты добавлены/обновлены
- [ ] Интеграционные тесты добавлены/обновлены
- [ ] Ручное тестирование завершено

## Скриншоты (если применимо)

Включите скриншоты до/после для изменений UI

Процесс проверки

  1. Автоматические проверки: CI/CD должен пройти
  2. Проверка кода: Как минимум одна проверка мейнтейнера
  3. Тестирование: Изменения протестированы в среде разработки
  4. Документация: Проверьте, что документация обновлена
  5. Слияние: Squash и слияние одобренных PR

Процесс релиза

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

Мы следуем Semantic Versioning:

  • MAJOR: Критические изменения
  • MINOR: Новые функции (обратно совместимые)
  • PATCH: Исправления багов (обратно совместимые)

Рабочий процесс релиза

  1. Заморозка функций: Прекратить принимать новые функции
  2. Тестирование: Комплексная фаза тестирования
  3. Документация: Обновить changelog и документацию
  4. Релиз: Создать tagged релиз
  5. Анонс: Сообщить об изменениях сообществу

Сообщество

Каналы коммуникации

  • GitHub Issues: Отчеты о багах и запросы функций
  • GitHub Discussions: Общие вопросы и идеи
  • Discord: Чат в реальном времени с сообществом
  • Twitter: Следите за @HatcherDX для обновлений

Руководства сообщества

  • Будьте уважительны: Относитесь ко всем с уважением
  • Будьте конструктивны: Фокусируйтесь на решениях, а не на проблемах
  • Будьте терпеливы: Помните, что все мы волонтеры
  • Будьте полезны: Делитесь знаниями и помогайте другим

Признание

Мы ценим все вклады! Контрибьюторы признаются в:

  • CONTRIBUTORS.md: Список всех контрибьюторов проекта
  • Заметки о релизе: Основные вклады выделены
  • Социальные сети: Показываем вклады сообщества

Ресурсы разработки

Полезные ссылки

Инструменты разработки

  • VS Code: Рекомендуемый редактор с расширениями Vue и TypeScript
  • Vue DevTools: Расширение браузера для отладки Vue приложений
  • Electron DevTools: Встроенные инструменты отладки

Вопросы?

Если у вас есть вопросы о вкладе:

  1. Проверьте существующие GitHub Discussions
  2. Присоединяйтесь к нашему Discord сообществу
  3. Создайте новое обсуждение или issue

Спасибо за вклад в Hatcher! Вместе мы строим будущее разработки с помощью ИИ.

Готовы оставить свой след?

Присоединяйтесь к сообществу, строящему Конституционную IDE для эпохи ИИ