Вклад в разработку
Mailframe — это бесплатный продукт с открытым исходным кодом. Это означает, что каждый может присоединиться к его развитию.
Если вы обнаружили проблему в документации, сначала проверьте, существует ли уже соответствующая задача. Если подходящей задачи нет, вы можете создать новую, используя соответствующую форму.
Также вы можете отправить запрос на новую функцию, выбрав метку feature-request
.
Ознакомьтесь с существующими задачами и выберите ту, которая вас заинтересует. Вы можете сузить поиск с помощью фильтров. Как правило, мы не закрепляем задачи за конкретными разработчиками. Если вы нашли задачу для работы, вы можете создать пулл-реквест с исправлением.
Проект использует Feature-Sliced Design (FSD) — архитектурную методологию для создания масштабируемых фронтенд-приложений.
Правила импортов
Запрещены импорты снизу вверх shared → entities → features → widgets → pages → app
Нижние слои не могут импортировать верхние.
Обязательный Public API
-
Все модули экспортируются через
index.ts
- Прямые импорты из внутренних файлов запрещены
Соглашения по коду
- Язык: Английский для кода, русский для комментариев
- Именование файлов: kebab-case
- Именование компонентов: PascalCase
- Именование переменных: camelCase
-
Типизация: Строгая типизация, избегание
any
- После внесения изменений создайте пулл-реквест.
- Заполните описание пулл-реквеста четким сообщением.
- Не забудьте связать пулл-реквест с задачей, если вы решаете конкретную проблему.
- Активируйте опцию «Разрешить изменения мейнтейнерам», чтобы ветку можно было обновить для слияния.
- После отправки пулл-реквеста его проверит член команды. Мы можем задать вопросы или запросить дополнительную информацию.
- Перед слиянием мы можем попросить внести изменения — через предложенные правки или комментарии. Вы можете применить предложенные изменения напрямую через интерфейс. Другие правки внесите в своем форке, затем закоммитьте их в свою ветку.
- По мере обновления пулл-реквеста отмечайте каждый обсуждаемый пункт как разрешенный.
- При возникновении конфликтов слияния воспользуйтесь этим гайдом по Git для их решения.
Проект находится в стадии активной разработки. Версионные теги обновляются только при достижении стабильной сборки. Заметки о релизах формируются вручную на основе ключевых изменений, включенных в версию.