Протокол Гильдии программистов
-
Гильдия программистов создана как децентрализованная автономная организация для разработки и поддержки программного обеспечения Ассоциации Монтелиберо.
-
Принципы.
2.1. Децентрализация: Каждая команда имеет автономию в принятии решений, но должна следовать процессам Гильдии.
2.2. Прозрачность: Все процессы разработки, обсуждение и принятие решений должны быть документированы и доступны для всех участников.
2.3. Сотрудничество: Команды должны поддерживать эффективное взаимодействие и обмен знаниями через доступные коммуникационные каналы и инструменты.
-
Изменение протокола осуществляется Старейшинами Гильдии через установку данных на счете
GDRLJC6EOKRR3BPKWGJPGI5GUN4GZFZRWQFDG3RJNZJEIBYA7B3EPROG. КлючProgrammersGuildProtocol, значение — sha-256 протокола. -
В каждой команде должен быть свой Капитан, что следит за соблюдением протокола.
-
Процессы.
5.1. Команды должны использовать Github и организацию Montelibero как основной репозиторий проектов Гильдии.
5.2. Заявки на новый функционал или решение ошибок и связанные обсуждения должны быть в Issues.
5.3. Изменения кода должно быть через Pull requests с обязательным ревью от Капитана или назначенного им ответственного специалиста.
5.4. Проекты должны иметь непрерывную интеграцию с помощью Actions.
5.5. Рекомендуется иметь непрерывную доставку с помощью Actions.
5.6. Проекты могут иметь документацию в Wiki. Допускается наличие документации в репозитории.
5.7. Планирование проекта может осуществляться через Projects.
-
Кодовая база.
6.1. Для разработки рекомендуется использовать TypeScript как самый популярный язык среди программистов-волонтеров Распределенного правления.
6.2. Стиль кода должен быть установлен Капитаном и согласован со Старейшинами.
6.3. Код должен иметь документацию: Описание интерфейсов, конфигурации и запуска.
6.4. Код должен быть структурирован и следовать принятым подходам и шаблонам. Подход к структуризации устанавливает Капитан и согласует со Старейшинами.
6.5. Коммиты должны соответствовать стандарту Conventional Commits.
6.6. Рекомендуется написание тестов на критический функционал.
6.7. Рекомендуется подход Test-Driven Development для повышения качества кода.
-
Релизы.
7.1. Версии программного обеспечения должны соответствовать стандарту Semantic Versioning.
7.2. Релиз новой версии должен быть согласован с Капитаном или назначенным им ответственным лицом.
7.3. Процесс тестирования и принятия нового функционала заказчиком осуществляет Капитан.
-
Безопасность.
8.1. Кодовая база должна иметь инструменты обнаружения уязвимостей.
8.2. Кодовая база должна быть обновлена, если Github Security советует это сделать из-за найденной уязвимости.
-
Решение конфликтов осуществляется через медиацию Капитанов или Старейшин.