Skip to content

Conversation

@sfaqer
Copy link
Member

@sfaqer sfaqer commented Nov 21, 2025

Summary by CodeRabbit

Релиз 1.6.5

  • Новые возможности

    • Улучшена обработка зависимостей при локальном разрешении: система теперь автоматически проверяет метаданные после копирования пакета и рекурсивно разрешает зависимости для полной установки.
  • Обслуживание

    • Версия продукта обновлена до 1.6.5.

✏️ Tip: You can customize this high-level summary in your review settings.

…ивные зависимости а не только копируются прямые
@coderabbitai
Copy link

coderabbitai bot commented Nov 21, 2025

Walkthrough

Обновлена версия продукта с 1.6.4 на 1.6.5. В менеджер установки пакетов добавлена функция обработки локальных зависимостей после копирования пакета с проверкой наличия файла метаданных и рекурсивным разрешением зависимостей.

Changes

Cohort / File(s) Change Summary
Обновление версии продукта
packagedef, src/core/Модули/КонстантыOpm.os
Константа ВерсияПродукта и версия по умолчанию в packagedef обновлены с "1.6.4" на "1.6.5"
Обработка локальных зависимостей
src/core/Классы/МенеджерУстановкиПакетов.os
Добавлена проверка файла метаданных после копирования пакета и рекурсивное разрешение локальных зависимостей с инкрементом уровня

Sequence Diagram(s)

sequenceDiagram
    participant PackageManager as МенеджерУстановкиПакетов
    participant FileSystem as Файловая система
    participant MetadataResolver as Резолвер метаданных
    
    PackageManager->>PackageManager: Копировать пакет в целевой каталог
    PackageManager->>FileSystem: Проверить наличие файла метаданных
    alt Файл метаданных существует
        FileSystem-->>PackageManager: Метаданные найдены
        PackageManager->>MetadataResolver: Прочитать метаданные пакета
        MetadataResolver-->>PackageManager: Зависимости из метаданных
        PackageManager->>PackageManager: Разрешить зависимости (уровень + 1)
    else Файл не существует
        FileSystem-->>PackageManager: Метаданные не найдены
        PackageManager->>PackageManager: Продолжить без разрешения локальных зависимостей
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Файл МенеджерУстановкиПакетов.os требует пристального внимания к логике рекурсивного разрешения зависимостей и условиям выполнения
  • Необходимо проверить корректность конструирования пути к файлу метаданных
  • Следует убедиться в отсутствии бесконечной рекурсии при разрешении циклических зависимостей

Possibly related PRs

Suggested reviewers

  • nixel2007
  • EvilBeaver

Poem

🐰 Версия прыг с четырёх на пять,
Зависимостям путь открыт,
Метаданные будут танцевать,
И рекурсия все зависит! 🌿

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок PR точно описывает основное изменение: добавлена обработка транзитивных зависимостей при установке self-contained пакетов, что соответствует внесённым изменениям в код.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bugfix/selfcontainedDeps

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2154c91 and 6e7e3db.

📒 Files selected for processing (3)
  • packagedef (1 hunks)
  • src/core/Классы/МенеджерУстановкиПакетов.os (1 hunks)
  • src/core/Модули/КонстантыOpm.os (1 hunks)
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
Repo: oscript-library/opm PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-18T17:19:16.051Z
Learning: Applies to oscript_modules/** : Для работы с зависимостями используется пакетный менеджер OneScript Package Manager (opm), зависимости устанавливаются в подкаталог oscript_modules, расположенный в корне проекта.
Learnt from: sfaqer
Repo: oscript-library/opm PR: 256
File: src/core/Классы/МенеджерУстановкиПакетов.os:231-231
Timestamp: 2025-09-16T23:46:32.663Z
Learning: В проекте oscript-library/opm логика управления уровнями зависимостей: dev-зависимости устанавливаются только на УровеньЗависимости = 0. Инкремент уровня происходит в методе УстановитьПакетПоОписанию при передаче в УстановитьПакетПоИмениИВерсии, поэтому в РазрешитьЗависимостиПакета нужно передавать текущий уровень без дополнительного инкремента.
Learnt from: sfaqer
Repo: oscript-library/opm PR: 256
File: src/core/Классы/МенеджерУстановкиПакетов.os:280-280
Timestamp: 2025-09-16T23:46:36.761Z
Learning: В МенеджерУстановкиПакетов.os зависимости для разработчика (dev-dependencies) устанавливаются только при УровеньЗависимости = 0. Инкремент уровня должен происходить после проверки dev-зависимостей в УстановитьПакетПоОписанию, а не в вызывающих методах РазрешитьЗависимостиПакета и РазрешитьЗависимостиПакетаЛокально.
📚 Learning: 2025-09-16T23:46:36.761Z
Learnt from: sfaqer
Repo: oscript-library/opm PR: 256
File: src/core/Классы/МенеджерУстановкиПакетов.os:280-280
Timestamp: 2025-09-16T23:46:36.761Z
Learning: В МенеджерУстановкиПакетов.os зависимости для разработчика (dev-dependencies) устанавливаются только при УровеньЗависимости = 0. Инкремент уровня должен происходить после проверки dev-зависимостей в УстановитьПакетПоОписанию, а не в вызывающих методах РазрешитьЗависимостиПакета и РазрешитьЗависимостиПакетаЛокально.

Applied to files:

  • src/core/Классы/МенеджерУстановкиПакетов.os
📚 Learning: 2025-09-16T23:46:32.663Z
Learnt from: sfaqer
Repo: oscript-library/opm PR: 256
File: src/core/Классы/МенеджерУстановкиПакетов.os:231-231
Timestamp: 2025-09-16T23:46:32.663Z
Learning: В проекте oscript-library/opm логика управления уровнями зависимостей: dev-зависимости устанавливаются только на УровеньЗависимости = 0. Инкремент уровня происходит в методе УстановитьПакетПоОписанию при передаче в УстановитьПакетПоИмениИВерсии, поэтому в РазрешитьЗависимостиПакета нужно передавать текущий уровень без дополнительного инкремента.

Applied to files:

  • src/core/Классы/МенеджерУстановкиПакетов.os
📚 Learning: 2025-07-18T17:19:16.051Z
Learnt from: CR
Repo: oscript-library/opm PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-18T17:19:16.051Z
Learning: Applies to oscript_modules/** : Для работы с зависимостями используется пакетный менеджер OneScript Package Manager (opm), зависимости устанавливаются в подкаталог oscript_modules, расположенный в корне проекта.

Applied to files:

  • src/core/Классы/МенеджерУстановкиПакетов.os
  • src/core/Модули/КонстантыOpm.os
📚 Learning: 2025-05-23T12:07:34.112Z
Learnt from: sfaqer
Repo: oscript-library/opm PR: 235
File: src/core/Классы/КэшУстановленныхПакетов.os:44-44
Timestamp: 2025-05-23T12:07:34.112Z
Learning: В тестовом файле `tests/versions-test.os` должны остаться вызовы `РаботаСВерсиями.СравнитьВерсии`, так как этот файл специально тестирует функциональность модуля `РаботаСВерсиями`.

Applied to files:

  • src/core/Модули/КонстантыOpm.os
📚 Learning: 2025-07-18T17:19:16.051Z
Learnt from: CR
Repo: oscript-library/opm PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-18T17:19:16.051Z
Learning: Используется OneScript Version Manager (ovm) для управления версиями движка OneScript.

Applied to files:

  • src/core/Модули/КонстантыOpm.os
  • packagedef
📚 Learning: 2025-05-23T12:07:34.112Z
Learnt from: sfaqer
Repo: oscript-library/opm PR: 235
File: src/core/Классы/КэшУстановленныхПакетов.os:44-44
Timestamp: 2025-05-23T12:07:34.112Z
Learning: В процедуре `ПроверитьВерсиюСреды` в файле `src/core/Модули/РаботаСОписаниемПакета.os` вызов `РаботаСВерсиями.СравнитьВерсии` должен быть сохранен как fallback-механизм для обратной совместимости с ранними версиями среды, которые не используют семантическое версионирование.

Applied to files:

  • packagedef
📚 Learning: 2025-07-18T17:19:16.051Z
Learnt from: CR
Repo: oscript-library/opm PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-18T17:19:16.051Z
Learning: Проект написан на языке 1С:Предприятие 8 и выполняется в независимой реализации виртуальной машины OneScript (oscript).

Applied to files:

  • packagedef
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: test (stable) / build (ubuntu-latest, stable)
  • GitHub Check: test (dev) / build (ubuntu-latest, dev)
  • GitHub Check: test (default) / build (macos-latest, default)
  • GitHub Check: test (dev) / build (windows-latest, dev)
  • GitHub Check: test (stable) / build (macos-latest, stable)
  • GitHub Check: test (default) / build (ubuntu-latest, default)
  • GitHub Check: test (default) / build (ubuntu-latest, default)
  • GitHub Check: test (stable) / build (ubuntu-latest, stable)
🔇 Additional comments (3)
src/core/Модули/КонстантыOpm.os (1)

27-27: Обновление ВерсияПродукта до 1.6.5 выглядит корректно

Версия продукта поднята до 1.6.5 и согласована с версией в packagedef в рамках этого PR, других эффектов от изменения нет.

packagedef (1)

16-16: Fallback-версия в packagedef синхронизирована с КонстантыOpm

Резервное присвоение ВерсияПродукта = "1.6.5" при отсутствии локального модуля констант согласовано с КонстантыOpm.ВерсияПродукта, логика не меняется.

src/core/Классы/МенеджерУстановкиПакетов.os (1)

277-290: Рекурсивное разрешение локальных транзитивных зависимостей через opm‑metadata реализовано корректно

После копирования каталога зависимости чтение opm-metadata.xml из каталога‑приёмника и рекурсивный вызов РазрешитьЗависимостиПакетаЛокально с УровеньЗависимости + 1 согласованы с существующей моделью уровней зависимостей и правилом установки dev-зависимостей только на уровне 0; для пакетов без метаданных поведение остаётся прежним.

С учётом retrieved learnings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sfaqer sfaqer requested a review from nixel2007 November 21, 2025 07:07
@nixel2007 nixel2007 merged commit 6962d55 into master Nov 21, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants