|
1 | 1 | # FreeCAD Addon Manager
|
2 | 2 |
|
3 |
| -This module was originally developed within FreeCAD, and has now been extracted into its own git repository. It is re-integrated into |
4 |
| -FreeCAD's source tree as a git submodule. |
| 3 | +Install and update third-party addons to FreeCAD, including Workbenches, Macros, Preference Packs, and more. Install |
| 4 | +*this* addon to update the internal Addon Manager to the latest version (and to allow future self-updating). |
| 5 | + |
| 6 | +This module was originally developed within FreeCAD, and has now been extracted into its own git repository. It is |
| 7 | +currently re-integrated into FreeCAD's source tree as a git submodule and continues to ship with FreeCAD. |
| 8 | + |
| 9 | +## Addon Sources |
| 10 | + |
| 11 | +The main source of addons is the git repository at https://github.com/FreeCAD/FreeCAD-Addons. Custom addon sources can |
| 12 | +be configured in the Addon Manager preferences when running FreeCAD. These addons are primarily written by |
| 13 | +third parties and provided by repositories not under the FreeCAD authors' or maintainers' control: you use these addons |
| 14 | +at your own risk. |
| 15 | + |
| 16 | +## Addon Manager Design Goals |
| 17 | + |
| 18 | +The Addon Manager is now designed to be self-updating, with a goal of allowing versions of FreeCAD back to 0.21 to |
| 19 | +use their default copy of Addon Manager to install a new version of Addon Manager. This means that the Addon Manager |
| 20 | +should support PySide2 and Python 3.8 for the foreseeable future. |
| 21 | + |
| 22 | +The Addon Manager is also designed to be run in a "standalone" mode to allow for easier UI development. In this mode |
| 23 | +it does not interact with FreeCAD at all, and does not use or affect "real" FreeCAD preferences, module installation, |
| 24 | +etc. |
5 | 25 |
|
6 | 26 | ## Roadmap
|
7 | 27 |
|
8 | 28 | This module is under active development, with the following rough plan
|
9 | 29 |
|
10 |
| -1. Complete migration to using the FreeCAD wrapper class to allow running outside of FreeCAD. |
11 |
| - 1. Split `addonmanager_utilities.py` along GUI/No-GUI lines |
12 |
| - 2. Refactor tests into pure GUI/No-GUI lines |
13 |
| - 3. Verify that all `FreeCAD.*` and `FreeCADGui.*` calls are wrapped |
14 |
| -2. Update GitHub CI to run Addon Manager test suite. |
15 |
| -3. Migrate to a JSON-formatted addon repository list. |
16 |
| -4. Rearrange codebase to better separate GUI from logic code. |
| 30 | +1. Migrate to a JSON-formatted addon repository catalog, replacing the original `.gitmodules`-based addon source |
| 31 | +2. Rearrange codebase to better separate GUI from logic code. |
| 32 | +3. Implement detection of changed addon dependencies when updating. |
| 33 | +4. Implement remote caching of icons and macros. |
17 | 34 | 5. Begin GUI redesign.
|
18 | 35 |
|
19 | 36 | PRs are welcome!
|
0 commit comments