161 lines
23 KiB
Markdown
161 lines
23 KiB
Markdown
Сгенерируй changelog для версии v2025.12.28.
|
||
|
||
Правила:
|
||
- Начинай changelog заголовком: "# v2025.12.28"
|
||
- Затем добавь краткое текстовое описание релиза (1–3 строки), основанное на комментарии разработчика. Не копируй комментарий дословно. Используй его только как ориентир для формулировки описания.
|
||
- Не добавляй ничего от себя, не используй мотивационные или маркетинговые фразы.
|
||
- После описания сгруппируй изменения по категориям:
|
||
✨ Новые функции
|
||
🐛 Исправления ошибок
|
||
🔧 Улучшения
|
||
- Каждый пункт списка должен быть в формате:
|
||
- [#Номер](https://github.com/coopenomics/mono/issues/Номер): Краткое описание
|
||
- Пиши кратко, строго и по делу.
|
||
- В конце поставь тег: #releases
|
||
|
||
Комментарий разработчика для описания релиза:
|
||
Релиз содержит прототип трекера результатов интеллектуальной деятельности, прототип моста в 1С, обновленный интерфейс и значительно повышенную стабильность.
|
||
|
||
Ниже список закрытых issues, начиная с 2025-07-2T10:00:00+03:00:
|
||
|
||
#332: Прототип конструктора требований дополнительных документов при регистрации
|
||
|
||
|
||
|
||
---
|
||
#331: Настроить система мониторинга сбоев и программных ошибок
|
||
|
||
На основе GlitchTIP, Loki, Prometheus
|
||
|
||
---
|
||
#330: Собрать прототип моста в 1С:Бухгалтерию: отдавать документы и совершать проводки по бухсчетам
|
||
|
||
|
||
|
||
---
|
||
#329: Найти, завести и протестировать подходящую образовательную платформу
|
||
|
||
LMS TUTOR на Wordpress вполне подходит.
|
||
|
||
---
|
||
#328: Повесить прототипы мульти-лендингов на цифровой-кооператив.рф и coopenomics.world
|
||
|
||
|
||
|
||
---
|
||
#327: Собрать пользовательскую документацию цифрового кооператива по интерфейсам
|
||
|
||
https://docs.цифровой-кооператив.рф
|
||
|
||
---
|
||
#326: Разработать минимальный интерфейс трекера результатов интеллектуальной деятельности по программе "Благорост"
|
||
|
||
|
||
|
||
---
|
||
#325: Задокументировать смарт-контракт программы "Благорост"
|
||
|
||
<https://coopenomics.world/contracts/group__public__capital.html>
|
||
|
||
---
|
||
#324: Разработать смарт-контракт программы генерации и капитализации результатов интеллектуальной деятельности ("Благорост")
|
||
|
||
|
||
|
||
---
|
||
#322: Поставка обновлений программного обеспечения с нулевым даунтаймом по стратегии blue-green
|
||
|
||
|
||
|
||
---
|
||
#321: Встроить систему проводок по фондам и её использование по контрактам
|
||
|
||
Добавить внутреннее действие по аналогии с newsubmitted. В параметрах должен быть тип фонда и его идентификатор, а также, сумма и параметр хэша для связи с внешней системой учёта. Вызывать из действий смарт-контрактов в процессе их бизнес-логики. И тем самым, формировать реестр, который затем отобразим.
|
||
|
||
---
|
||
#319: Установить палитру команд и быстрого доступа к страницам рабочих столов (cmk+k)
|
||
|
||
|
||
|
||
---
|
||
#318: Настроить LOKI & GRAPHANA для выгрузки логов из контейнеров
|
||
|
||
``` 1. Подготовка Loki Loki можно запустить как отдельный контейнер через Docker Compose. Для начала создадим конфигурацию. Файл loki-config.yaml yaml Копировать код auth_enabled: false server: http_listen_port: 3100 ingester: lifecycler: ring: kvstore: store: inmemory replication_factor: 1 chunk_idle_period: 5m chunk_retain_period: 30s max_transfer_retries: 0 schema_config: configs: - from: 2020-10-24 store: boltdb object_store: filesystem schema: v11 index: prefix: index_ period: 24h storage_config: boltdb: directory: /loki/index filesystem: directory: /loki/chunks limits_config: enforce_metric_name: false reject_old_samples: true reject_old_samples_max_age: 168h chunk_store_config: max_look_back_period: 0 table_manager: retention_deletes_enabled: false retention_period: 0 Файл docker-compose.override.yml Добавьте Loki в существующий docker-compose.yml: yaml Копировать код services: loki: image: grafana/loki:2.9.1 container_name: loki ports: - "3100:3100" volumes: - ./loki-config.yaml:/etc/loki/local-config.yaml - ./loki-data:/loki command: -config.file=/etc/loki/local-config.yaml promtail: image: grafana/promtail:2.9.1 container_name: promtail volumes: - /var/lib/docker/containers:/var/lib/docker/containers:ro - /var/log:/var/log:ro - ./promtail-config.yaml:/etc/promtail/config.yml 2. Подготовка Promtail Promtail будет собирать логи с контейнеров и отправлять их в Loki. Файл promtail-config.yaml yaml Копировать код server: http_listen_port: 9080 grpc_listen_port: 0 clients: - url: http://loki:3100/loki/api/v1/push positions: filename: /run/promtail/positions.yaml scrape_configs: - job_name: docker static_configs: - targets: - localhost labels: job: docker __path__: /var/lib/docker/containers/*/*.log 3. Настройка контейнеров для логирования Добавьте драйвер json-file или оставьте стандартный (он уже поддерживается Promtail): yaml Копировать код logging: driver: "json-file" options: max-size: "10m" max-file: "3" 4. Интеграция Loki с Grafana Откройте Grafana → Configuration → Data Sources. Добавьте новый источник данных: Type: Loki. URL: http://loki:3100. Сохраните настройки. 5. Просмотр логов в Grafana Перейдите в Explore → выберите источник данных Loki. Используйте запросы для фильтрации, например: arduino Копировать код {job="docker"} Для детальной информации можно настроить дашборд в Grafana с фильтрацией по контейнерам. 6. Тестирование Перезапустите Docker Compose: bash Копировать код docker-compose up -d Убедитесь, что Promtail и Loki собирают логи. Проверьте контейнеры loki и promtail через: bash Копировать код docker logs loki docker logs promtail ```
|
||
|
||
---
|
||
#316: Завершить переход рабочего стола на GraphQL SDK
|
||
|
||
|
||
|
||
---
|
||
#314: Развернуть GlitchTip как альтернативу Sentry
|
||
|
||
<https://glitchtip.com/documentation/install>
|
||
|
||
---
|
||
#312: Баг: статус коммитов не изменяется при их приёме - подписка не работает
|
||
|
||
|
||
|
||
---
|
||
#309: Баг: трекер показывает в таблице чужие билеты времени
|
||
|
||
|
||
|
||
---
|
||
#308: Магазин приложений должен отображать рабочие столы, которые будут установлены. Ввести подключение нескольких рабочих столов одним приложением.
|
||
|
||
|
||
|
||
---
|
||
#307: Настройки контракта соединить с нативными настройками приложения и допустить процесс импорта после конфигурации
|
||
|
||
|
||
|
||
---
|
||
#306: Собрать модуль запросов и мутаций контракта капитализации
|
||
|
||
На основе собранного теста capital.test произвести формирование полного набора всех запросов и мутаций, которые использовались там. Сформировать GraphQL-DTO входящих и исходящих данных.
|
||
|
||
---
|
||
#305: Project: убрать title & description из проекта в одно поле data, где будет дополнительно и приглашение (invite)
|
||
|
||
|
||
|
||
---
|
||
#304: Собрать доменную модель контракта капитализации на бэкенде
|
||
|
||
Модель синхронизируется по событиям изменения таблиц в блокчейне, поддерживая актуальное состояние и реагируя на микрофорки - откатом. COOPSTARTER * [x] Проекты - Компоненты (projects) * [x] Этапы - (milestones) * [x] Вкладчики (contributors) * [x] Инвестиции (invests) * [x] Сегменты (segments) * [x] Кошельки (wallets) * [x] кошелек программных членских взносов * [x] кошелек проектных членских взносов * [x] кошелек проекта COOPTRACKER * [x] Расходы (expenses) * [x] Комиты (commits) * [x] Голоса (votes) …
|
||
|
||
---
|
||
#303: Пересмотреть архитектуру парсера и формирования локальной истории
|
||
|
||
Сейчас я начинаю заводить подписками данные в репозитории. При таком подходе, в случае “отрезания” головы у цепочки кооперативы не откатятся автоматически, а новыми операциями просто перезапишут глобальную последовательность. Вероятно, парсер нужно занести в локальный сервис, чтобы извлекать из него все что нужно по индексам как это работает сейчас на монге. Тогда вместо отдельных репозиториев будет один большой репозиторий и адаптеры на извлечение. При перезапуске парсинга старые действия отлетят и голова отбросится. Сейчас тоже так, но при использовании устаревшего ws.controller и пересохраняя в локальные репозитории мы теряем такую возможность.
|
||
|
||
---
|
||
#302: Рефакторинг архитектуры
|
||
|
||
Организуем двухконтурную шину данных между парсером действий/дельт блокчейна, которая публикует их в редис-стрим, из которого подписчики (кооперативы) извлекают последовательно данные и публикуют события на внутренней шине событий (MONO). Обработка событий производится путем подписки на внутренней шине в каждом отдельном интеракторе в любом месте приложения. Вводим обработку событий микрофорка, при которой в случае наступления внутренняя шине получит оповещение, которое должно обработать путем удаления/отката таблиц и действий из базы данных для блоков, полученных после события форка.
|
||
|
||
---
|
||
#301: Контракт "Капитализация РИД" v0.2
|
||
|
||
* [x] регистрация вкладчика с договором УХД register_contributor [regcontrib → approvereg] * [x] открыть кошелёк * [x] создание проекта с параметрами шаблона приложения к договору УХД create_project * [x] регистрация вкладчика проекта по приложению к договору УХД join_project [signappendx → apprvappndx] * [x] добавить мастера на проект * [x] расчет накопительного среднего фактического стоимости часа * [x] добавить автора в проект * [x] обновить план проекта * [x] открыть проект * [x] принять инвестиции * [x] зафиксироваться по координаторам * [x] стартовать проект * [x] добавить коммит создателя в проект * [x] распределить вклады на соавторов * [x] перевести на CRPS? * [x] учесть вклады координаторов * [x] перевести на CRPS? * [x] пересчитать provisional_amount по CRPS от факта суммы инвестиций * [x] выдать ссуды * [x] принять результаты и погасить ссуду * [x] сконвертировать в кошелек и капитализацию * [x] учесть факт наличия инвестиционных средств при конвертации в кошелек * [x] учесть фактическую сумму расходов и ее влияние * [x] ввести механизм списания расходов * [x] принять членский взнос в проект * [x] распределить членские взносы проекта * [x] возврат членского взноса проекта * [x] корректно закрыть проект * [x] принять системный членский взнос * [x] распределить системные членские взносы * [x] возврат системного членского взноса из программы * [x] перераспределение остаточный средств между проектами * [x] перераспределение средств из программы в проект ## рефакторинг * [x] разделить плановые и фактические пулы на разные структуры * [x] выделить crps в отдельную структуру * [x] вынести счетчики в отдельную структуру * [x] рефакторинг структуры проекта * [x] рефакторинг структуры сегмента * [x] привести shares к одному формату * [x] ввести мета-проекты и конвертацию между договорами УХД * [x] выделить долю в проекте в отдельный проектный кошелек? * [x] тогда нужно делать конвертацию в проект, а не оставлять средства в сегменте для получения доли в членских взносах проекта * [x] вынести memo отдельно * [x] все действия на коллбэках вынести в отдельный неймспейс * [x] createagenda_interface и createapprove_interface заменить на нормальные функции * [x] инициализация контракта для кооператива * [x] рефакторинг contributor * [x] рефакторинг global_state * [x] рефакторинг appendix * [x] рефакторинг коммита * [x] рефакторинг conversion * [x] converts * [x] debt (approved_statement убрать позже при отладке) * [x] expenses (fund_id поправить на счёт) * [x] used_expense_pool в generation_amounts * [x] invests * [x] membership_crps * [x] memo (по ходу отладки все текста подправить) * [x] plan_pool * [x] program_invests * [x] program_withdraw (approved_return_statement) * [x] project_withdraw * [x] projects (уточнить статусы при отладке) * [x] result (уточнить при отладке) * [x] segments * [x] votes * [x] wallets * [x] выдать и погасить долг на внешнем контракте loan * [x] проводки по счетам * [x] проводки по кошелькам ## Отладка * [x] Инициализация * [x] Вынести константы в конфиг кооператива * [x] Описать параметры и их воздействие * [x] program_invest_pool в плане вроде не нужно вообще * [x] вынести расчет expense_gap в единую функцию Коммиты * [x] принять коммиты и пересчитать создательские/авторские Инвестиции * [x] принять инвестиции и пересчитать суммы к ссудам Координаторы * [x] привести investor2 через координатора tester3 * [x] принять инвестицию от investor2 и проверить баланс координатора tester4 * [x] принять инвестицию от investor3 и проверить баланс координатора tester5 Ссуды * [x] взять ссуду первым тестером * [x] взять ссуду координатором Взносы имуществом * [x] взнос имуществом в результат * [x] взнос имуществом в программу Голосование * [x] начать голосование * [x] коммиты больше не разрешены * [x] инвестиции допустимы * [x] валидация кода * [x] провести голосование * [x] tester1-5 голосуют * [x] что будет без голосов * [x] требуется хотя бы 1 голос для закрытия голосования * [x] принять результат от тестера1,2,3, и инвестора1,2 Результат * [x] завершить голосование * [x] инвестиции / коммиты / аллокации запрещены * [x] вернуть ссуды (и учесть через отдельный контракт) * [x] произвести конвертации * [x] в проект * [x] в программу * [x] в кошелек * [x] проверка передачи shares на родительский проект Капитализация вкладчиков * [x] тест на корректное изменение капитализации Членские взносы * [x] проверка накопления и распределения членских взносов проекта * [x] проверка накопления и распределения членских взносов программы * [x] проверка инвестиций в программу и аллокаций/диаллокаций средств Расходы * [x] проверка расширения плана расходов * [x] проверка списания расходов * [x] проверка движений по счетам / кошелькам Удаление * [x] проверка закрытия / удаления проекта из памяти * [x] возврат неиспользуемой суммы инвестора Импорт данных * [x] importcontr * [x] создает объект вкладчика с подписанным договором УХД по указанной внешней дате * [x] создаёт кошелек в программе капитализации с устаревшей версией (для того, чтобы форма приёма была доступна) * [x] принимает сумму взносов * [x] пополняет кошелек программы капитализации Рефакторинг наименований и таблиц * [x] переименовать действия * [x] удалить неиспользуемые поля * [x] Документирование ##
|
||
|
||
---
|
||
#300: test
|
||
|
||
|
||
|
||
---
|
||
#222: Внедрить метод Водянова на распределении пула премий по программе "Благорост"
|
||
|
||
|
||
|
||
---
|
||
#212: Убрать избыточные нулики из шаблона заявления на вступление в кооператив
|
||
|
||
Изначально при запуске блокчейна была допущена ошибка: система поддерживает точность валютных значений до десятитысячного знака, что избыточно. Это приводит к тому, что во всех генерируемых документах указываются четыре знака после десятичной точки, что создаёт дискомфорт и усложняет обработку данных. Предлагается заменить точность валют, связанных с кооперативами и государственным учётом, уменьшив её с четырёх знаков до двух, поскольку в таких системах стандартной практикой является использование только двух десятичных знаков (например, до 100 копеек). При этом точность цифровых валют, таких как утилити-токен Axon, остаётся неизменной и составляет четыре знака. Выполнение этого изменения сейчас, несмотря на возможные трудности, предотвратит ухудшение ситуации в будущем.
|
||
|
||
---
|