Std AddonMgr

Introduction
The Addon Manager is a tool to install and manage external workbenches and macros provided by the FreeCAD community. If the git-python package is installed on your computer, the Addon Manager will make use of it to update installed workbenches, making downloads faster.

The lists of installable workbenches and macros are taken from two repositories, FreeCAD-addons and FreeCAD-macros, respectively, and from the Macros recipes.



Usage
You will have to restart FreeCAD before new workbenches appear in the list of available workbenches. They are appended at the end, if you want to have them in alphabetical order, you can rearrange them in the Std DlgCustomize dialog.
 * Open the tool in the menu.
 * To install a workbench: scroll through the list and select the add-on; a short description, as well as its home page, will be displayed below the list. Press the button to install the new tool. For macros, click on the  tab and repeat the steps.
 * To remove a workbench or a macro: scroll through the list, select the add-on, and then press the button.
 * To update a workbench or a macro: scroll through the list, select the add-on, and then press the button.
 * To check for updates: press the button; available updates will be reported below the list. Press the  button again to install all updates at once.  the icon may look different depending on your operating system.
 * To run a macro: first install the desired macro, then select it again on the list, and then press the button. The macro is automatically edited in the FreeCAD macro editor, to visualize the code.
 * Press to exit the manager.

Manual installation
If you don't use the Addon Manager, you can install the new tools manually by placing their code in your user's directory. See the following links for details:
 * How to install macros
 * How to install additional workbenches

Limitations

 * These add-ons are not part of the official FreeCAD program and are not supported by the core FreeCAD development team. You should read the information provided on each add-on's home page to make sure you know what you are installing.


 * Bug reports and feature requests should be made directly to the creator of the add-on by visiting the indicated website. Many add-on authors are regular users of the FreeCAD forum, and can be contacted there.


 * The web addresses of the repositories for add-ons and macros are hard coded into the AddonManager. As this application is written in Python, experienced users can change these locations by editing the appropriate fields in




 * where is the installation directory of FreeCAD in your particular system, for example,
 * Linux:
 * Windows:

New workbenches and macros
If you developed a workbench or macro, and want to see it included in the Addon Manager, read how to do that on the repository pages (FreeCAD-addons and FreeCAD-macros). If you add your macro to the Macros recipes, there is nothing else to do, it will automatically be picked by the Addon Manager.

For python workbenches, you don't need any specific approval to have your workbench added to the Addon Manager and, being outside the FreeCAD source code, you can choose the license you want. If you request for your workbench to be added to the list (we will not add any new workbench without a request from its authors), either by asking so on the forum or by opening an issue on the FreeCAD-addons repository, your code will stay on your own git repository, we will just add it as a submodule to the FreeCAD-addons repository. Of course, before adding your workbench, we will take a look at it and make sure there is nothing potentially problematic with it.

If you develop a workbench in C++, it cannot be run directly by users and must be compiled first. You then have 2 options, either you provide precompiled versions of your workbench yourself, for the different operating systems, or you should request to have your code merged into the FreeCAD source code. For that, you should use the LGPL license (or fully compatible like MIT or BSD), and you must present your new tools to the community in the FreeCAD forum for review. Once your code has been tested and approved, you should fork the FreeCAD repository, if not done yet, create a new branch, push your code to it, and open a pull request so that your branch is merged into the main repository.

Testing the Addon Manager
The Addon Manager is coded in Python so it's possible to change the source code without compiling it. More specifically, testing requires modifying the code in and simply re-running FreeCAD.

To test downloading capability of the Addon Manager you can simulate a need to download say, a previous version of a workbench via the CLI. In the following example we'll use the Assembly2+ workbench (or A2plus for short):

CLI output should show HEAD is now at b2c53a4 Merge pull request #281 from kbwbe/devel

What we essentially did was use a previous release tag to reset the version. Now, in the Addon Manager refresh the list of workbenches and it should show that the A2plus workbench is using an inferior version.