Быстрый старт для разработчиков
Этот гид предоставляет краткую информацию для разработчиков, чтобы быстро начать работу с NIKA. Вы всегда можете узнать больше о системе сборки NIKA.
Установка подмодулей NIKA
Чтобы клонировать репозиторий, выполните:
git clone https://github.com/NikitaZotov/nika
cd nika
git checkout feat/migrate_to_0.10.0
git submodule update --init --recursive
Проверка CMake
Сначала установите pipx, используя руководство по установке pipx, если он еще не установлен.
Убедитесь, что используете CMake версии 3.24 или новее. Проверьте версию с помощью:
Чтобы обновить CMake, выполните:
# Установите cmake с помощью pipx, если он еще не установлен
pipx install cmake
pipx ensurepath
# Перезапустите shell после установки
exec $SHELL
Установите генератор Ninja для CMake, чтобы использовать пресеты CMake:
# Установите ninja с помощью pipx, если он еще не установлен
pipx install ninja
pipx ensurepath
# Перезапустите shell после установки
exec $SHELL
Разработка C++ решателя задач NIKA с Conan
Установка Conan
Установите Conan, чтобы собирать зависимости C++ решателя задач:
# Установите conan с помощью pipx, если он еще не установлен
pipx install conan
pipx ensurepath
# Перезапустите shell после установки
exec $SHELL
Использование C++ решателя задач в режиме Debug
Установка зависимостей с Conan
C++ решатель задач NIKA является расширением для sc-machine, поэтому sc-machine - основная зависимость. Для установки выполните в корневой директории проекта:
Сборка C++ решателя задач в режиме Debug
Для сборки в режиме отладки с использованием зависимостей Conan выполните:
Примечание
По умолчанию пресет debug
включает тесты для C++ решателя задач.
Запуск тестов C++ решателя задач в режиме Debug
Затем перейдите в build/Debug
и запустите тесты с помощью ctest
:
Вы также можете проверить форматирование кода. Подробнее смотрите на странице флагов CMake.
Использование C++ решателя задач в режиме Release
Установка зависимостей с Conan
Для установки выполните в корневой директории проекта:
Сборка C++ решателя задач в режиме Release
Для сборки без тестов выполните:
Для сборки с тестами выполните:
Запуск тестов C++ решателя задач в режиме Release
После этого выполните:
Вы также можете проверить форматирование кода. Подробнее смотрите на странице флагов CMake.
Разработка sc-web интерфейса
Установка зависимостей с npm
Перейдите в директорию sc-web
и выполните:
Сборка sc-web интерфейса
Для сборки выполните:
Запуск sc-web интерфейса
Для запуска выполните:
Разработка Python решателя задач NIKA
Установка зависимостей с pip3
Для установки зависимостей выполните:
python3 -m venv problem-solver/py/.venv
source problem-solver/py/.venv/bin/activate
pip3 install -r problem-solver/py/requirements.txt
Запуск тестов Python решателя задач
Для запуска Python решателя задач требуется работающий C++ решатель задач. Запустите его:
./path/to/sc-machine/binary -s kb.bin -c nika.ini \
-e "path/to/nika/lib/extensions;path/to/sc-machine/lib/extensions;path/to/scl-machine/lib/extensions"
Затем в новом терминале выполните:
Запуск Python решателя задач
Запустите C++ решатель задач:
./path/to/sc-machine/binary -s kb.bin -c nika.ini \
-e "path/to/nika/lib/extensions;path/to/sc-machine/lib/extensions;path/to/scl-machine/lib/extensions"
Затем в новом терминале выполните:
Разработка интерфейса NIKA
Установка зависимостей с npm
Перейдите в директорию interface
и выполните:
Сборка интерфейса
Для сборки выполните:
Запуск интерфейса
Для запуска выполните:
Запуск NIKA
Перед запуском NIKA извлеките sc-machine из GitHub Releases или соберите его.
Сначала соберите базу знаний:
Затем запустите C++ решатель задач:
./path/to/sc-machine/binary -s kb.bin -c nika.ini \
-e "path/to/nika/lib/extensions;path/to/sc-machine/lib/extensions;path/to/scl-machine/lib/extensions"
Запустите sc-web интерфейс в новом терминале:
Запустите Python решатель задач в новом терминале:
И запустите интерфейс в новом терминале:
Участие в разработке
Чтобы внести изменения в проект, создайте Pull Request.