Skip to content

Commit ca46a74

Browse files
authored
Merge pull request #58 from FreeCAD/dev
Expand test suite
2 parents 1bf0922 + 2b4bc64 commit ca46a74

File tree

3 files changed

+28
-11
lines changed

3 files changed

+28
-11
lines changed

.github/workflows/app-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212

1313
strategy:
1414
matrix:
15-
python-version: ["3.9", "3.10", "3.11", "3.12"]
15+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
1616

1717
steps:
1818
- name: Checkout repo

README.md

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,36 @@
11
# FreeCAD Addon Manager
22

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.
525

626
## Roadmap
727

828
This module is under active development, with the following rough plan
929

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.
1734
5. Begin GUI redesign.
1835

1936
PRs are welcome!

addonmanager_toolbar_adapter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ToolbarAdapter:
2525
def __init__(self):
2626
if self.params is None:
2727
self.params = fci.ParamGet("User parameter:BaseApp/Workbench/Global/Toolbar")
28-
if isinstance(self.params, fci.ParametersReplacement):
28+
if fci.FreeCAD is not None:
2929
raise RuntimeError("ToolbarAdapter can only be used when run from within FreeCAD")
3030

3131
def get_toolbars(self):

0 commit comments

Comments
 (0)