FreeCAD Academy

Dependencies

The <depend> , <replace> & <conflict> tags declare the dependencies of your addon.


General

For every relationship to a dependency one tag should be added to the <package> tag.

» Check the Manifest of the Template for an example.


Bundles

Bundle addons - which use the <bundle> content item - list a multitude of dependencies that will be installed when the the addon is installed.


Syntax

Set the tag value to the name of the dependency and specify the type and version range you need.

<depend
    version_lte = '‹Version›'
    version_gte = '‹Version›'
    version_lt = '‹Version›'
    version_gt = '‹Version›'
    version_eq = '‹Version›'
    optional = 'true'
    type = '‹Type›'
>‹Id›</depend>

<conflict
    ...
>‹Id›</conflict>

<replace
    ...
>‹Id›</replace>


Version

Use one or a combination of the version attributes to specify the what ranges of versions you require.


Optional

Add this attribute if your dependency is not strictly necessary for the base functionality.

The user will be prompted on install whether they want to download these extra dependency.

Ensure your addon checks that the optional dependencies are available before using them.


Type

Specify the type of the dependency, this can be one of the following types:


Internal

The following internal mod types are available:

assembly , bim , cam , draft , fem , import , material , mesh
openscad , part , partdesign , plot , points , web , sketcher
reverseengineering , spreadsheet , techdraw , tux , robot


Examples


Internal

Dependency on the internal PartDesign mod.

<depend
    type = 'internal'
>partdesign</depend>


Python

Dependency on the Numpy python package.

<depend
    version_gte = '2.4.2'
    type = 'python'
>numpy</depend>


Addon

Optional dependency on the Curves addon.

<depend
    version_gte = '0.6.70'
    type = 'optional'
>Curves</depend>