# Управление зависимостями и их обновление в Dynamo

### Когда пригодится эта статья

При работе над новой функцией, а также при обновлении существующей зависимости прежде чем добавлять новую зависимость в репозиторий Dynamo, следует оценить следующие аспекты.

### Рекомендации

1. Какая лицензия используется для новой или обновленной зависимости? Не все лицензии на решения с открытым исходным кодом можно утвердить без обращения в юридический отдел Autodesk.
   * После разрешения лицензии занесите зависимость и версию во внутреннюю справку.
   * Если это лицензия `LGPL`, `GPL` или `Apache`, файл лицензии необходимо скопировать во вложенную папку *Open Source Licenses* в сборке Dynamo.
   * Если это лицензия `LGPL`, полный исходный код всех сторонних компонентов, а также текстовые копии соответствующих лицензий на решения с открытым исходным кодом должны быть выгружены на страницу [www.autodesk.com/lgplsource](https://www.autodesk.com/company/legal-notices-trademarks/open-source-distribution)
2. Меняется ли тип лицензии при переходе на новую версию?
3. Является ли зависимость кросс-платформенной?
   * Есть ли в решении нативные компоненты (например, `CEFSharp` или `ImageMagick`)? Это затруднит кросс-платформенное развертывание.
   * В зависимости есть ссылки только для Windows? Если да, она не должна представлять собой зависимость DynamoCore или других кросс-платформенных частей Dynamo (уровень модели).
4. Зависимость корректно вложена в папку bin при сборке вместе со всеми необходимыми зависимостями?
   * Будут ли удалены какие-либо файлы в результате обновления? Предназначена ли эта версия Dynamo для промежуточного выпуска основных программ? Если да, необходимо сохранить старые двоичные файлы до года глобального выпуска для поддержки установщиков исправлений. См. [здесь](https://github.com/DynamoDS/Dynamo/tree/master/extern/legacy_remove_me).
5. Конфликтует ли зависимость или ее дерево зависимостей с другими зависимостями в Dynamo?
6. Конфликтует ли зависимость или ее дерево зависимостей с существующими зависимостями в программах, которые интегрируют Dynamo в процессе (Revit, Civil и т. д.)? **Это важно, поскольку эти проблемы можно обнаружить только во время интеграции, если не решить их заранее.**
