Платформа ЦРНП "Мирокод"
Общее описание
Платформа "Мирокод" - необходимый инструмент для разработки народных проектов.
Разрабатывается на основе gitea.
Вы можете собрать и развернуть этот проект у себя
В перспективе планируется реализовать:
- Карта пользователей (их ресурсы, компетенции и интересы), проектов, сообществ.
- Дерево задач в каждом проекте
- Дерево проектов
- Проекты могут быть не только для разработки, но и любые общественные проекты
- У пользователя можно будет указать ресурсы, компетенции, интересы
- Объединяются в одном месте, люди, проекты, ресурсы и компетенции, а также инструменты ведения проектов и решения задач.
- В перспективе самый простой модуль игроподобия, для того чтобы легко подбирать новые задачи из любых проектов
- Метрика по проектам
Как подключиться к проекту
- Написать куратору - https://t.me/AlexeiBv
- Выбрать задачу и уведомить об этом куратора.
- Все изменения проводить в отдельной ветке отщеплённой от dev_mirocod.
- Для вливания изменений делаем запросы на слияние
Разработка
Основная ветка для разработки - dev_mirocod. Она отщеплена от стабильного релиза.
При реализации задачи:
- Клонируем себе (если уже не склонирован)
git clone gitea@git.mirocod.ru:MIROCOD/Platform_Mirocod.git
- Отщепляем от dev_mirocod новую ветку (например, user_map).
git branch user_map
переходим на новую ветку
git checkout user_map
Пушим ветку в основной репозиторий
git push origin user_map:user_map
Указываем в задаче нужную ветку
- Проводим изменения в нашей новой ветке.
- Добавляем новые файлы к коммиту
git add .
- Коммитим себе локально
git commit -m "Новые изменения #X"
, где #X - номер задачи, например #12
- Делаем запрос на слияние в ветку dev_mirocod в репозитории на сайте.
Выкатывание
-
Начинаем локально.
-
запускаем очистку
TAGS="bindata sqlite sqlite_unlock_notify" make build clean
-
Запускаем сами тесты:
TAGS="bindata sqlite sqlite_unlock_notify" make test
-
Если что-то сломалось, исправляем и делаем push в ветку dev_mirocod.
-
Переходим на хостинг.
-
На всякий случай проверить, что есть дамп БД gitea (в самом свежем tgz-архиве в папке /home/backup), например, через sudo mc.
-
На всякий случай делаем дамп папки с данными (можно перезаписать).
sudo zip -r /home/backup/home.gitea.data.zip /home/gitea/data/
-
Заходим под пользователем gitea.
sudo -i -u gitea
-
Переходим в рабочую папку проекта.
cd /home/gitea/platform_mirocod/
-
Стягиваем последние изменения из ветки dev_mirocod.
git pull origin dev_mirocod
-
Пересобираем проект.
TAGS="bindata" make build
-
Выполняем миграции:
./gitea migrate
-
Выходим из-под пользователя gitea:
exit
-
Остановить службу gitea:
sudo systemctl stop gitea.service
-
Заходим под пользователем gitea.
sudo -i -u gitea
-
Заменить исполняемый файл:
cp ./platform_mirocod/gitea .
-
Выходим из-под пользователя gitea:
exit
-
Запускаем службу gitea:
sudo systemctl start gitea.service
Возникающие ошибки
-
make: *** [public/js/index.js] Ошибка 137
- Причина: недостаток ОЗУ.
- Лечение: освободить ОЗУ, например, временно отключить mysql.service. Можно ещё mattermost.service. Только затем обязательно включить его снова.
$ sudo systemctl stop mysql.service
- Makefile:597: ошибка выполнения рецепта для цели «gitea» make: *** [gitea] Ошибка 1
В консоли виды ошибки, наподобие go build code.gitea.io/gitea/modules/public: /usr/local/go/pkg/tool/linux_amd64/compile: signal: killed
- Причина и лечение те же - недостаток ОЗУ.