Skip to content

Releases: d3156/PluginCore

Multi-arch Release 1.1.1

16 Feb 07:43

Choose a tag to compare

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

29 Jan 21:15

Choose a tag to compare

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.