Releases: d3156/PluginCore
Multi-arch Release 1.1.1
Changelog
[v1.1.1] - 2026-02-15
🚀 Новые возможности
-
GitLab CI/CD Pipeline
Полная автоматизация сборки для amd64, arm64, armhf с кэшированием ccache и публикацией релизов -
Multi-arch Debian Packages
Автоматическая сборка и публикация.debпакетов для всех архитектур с GitLab Releases
🔧 Основные улучшения
-
PluginCore API v1.1.1
Стабильный публичный API через include-заглушки:include/PluginCore/Core.hpp → #include <PluginCore/Core> include/PluginCore/IPlugin.hpp → #include <PluginCore/IPlugin> include/PluginCore/IModel.hpp → #include <PluginCore/IModel> -
ModelsStorage Rewrite
models.registerModel<T>()вместо макросаRegisterModel()- Проверка совместимости плагинов-моделей (дерево зависимостей)
- Автоматическая дедупликация моделей по имени
- Корректный порядок деструкции по
deleteOrder()
-
Plugin Loading
RTLD_LOCALвместоRTLD_GLOBALдля изоляции плагинов- Улучшенная обработка ошибок dlopen/dlsym
📦 Развёртывание и Runtime
-
runtime_install.sh
Автоматическая установка runtime-окружения:sh <(curl -fsSL https://gitlab.bubki.zip/d3156/PluginCore/-/raw/main/tools/runtime_install.sh) -
Systemd Integration
setup-autostart.shсоздаёт сервис с автозапуском и journald-логами
🛠️ Система сборки
-
CMake Export (
d3156::PluginCore)
Полная поддержкаfind_package(PluginCore CONFIG REQUIRED) -
Cross-compilation
ARMv7 (armhf), AArch64 (arm64) с gcc-12/13
🔍 Отладка и логирование
-
Backtrace on SIGSEGV
Автоматический стек-трейс при segfault -
Улучшенное логирование
Цветные префиксы в файлах,PER_SOURCE_FILES=true|false
📚 Документация
- Обновлены Readme.md, Readme.ru.md
- Примеры нового API
- Runtime-установка и workspace
🔄 Миграция с v1.1.0
// v1.1.0
RegisterModel("Model", new Model(), Model);
// v1.1.1
auto model = models.registerModel<Model>();
// Include (без .hpp)
#include <PluginCore/Core> // вместо <PluginCore/Core.hpp>Статистика: 47 файлов, GitLab CI/CD, Multi-arch поддержка
1.1.0
Release Notes
ChangeLog:
1. Logging with Multiple Levels and Categories
- Flexible logging configuration has been added via environment variables.
- Logger settings:
| Variable | Default Value | Description |
|---|---|---|
| FORMAT | |{date:%H:%M:%S}|{source}| {message} | Log format. Supports {source}, {file}, {line}, {message}, {date:format strftime}, {level} |
| OUT | CONSOLE | Output destination: CONSOLE or FILE |
| OUT_DIR | ./logs | Directory for log files |
| PER_SOURCE_FILES | false | Save logs per source in OUT_DIR/{source}.log |
| R_LEVEL | 1 | Error logging level |
| Y_LEVEL | 1 | Warning logging level |
| G_LEVEL | 1 | Info logging level |
| W_LEVEL | 1 | Debug logging level |
2. Core Architecture Update
- The core has been refactored to use the dynamic library PluginCore.
- Benefits:
- Safer plugin loading.
- Prevents situations where multiple plugins with different core versions run in the same application.