Commit Graph

16 Commits

Author SHA1 Message Date
Chris Hennes
b446f2012d Addon Manager: Fixes for license handling 2024-02-11 17:19:23 -06:00
Chris Hennes
002f246989 Addon Manager: Allow primary branch name change 2024-01-30 16:52:16 +01:00
Paddle
61daaceb8f Add 'type' to MetadataPy, MetadataPyImp and addonmanager_metadata.py 2023-08-07 10:52:08 -06:00
Chris Hennes
b0090a7890 Addon Manager: Improve error handling for Version 2023-05-19 17:17:29 -05:00
Chris Hennes
1f6c364fa6 Addon Manager: Refactor Metadata
Create a Python-native metadata class. Includes unit tests, and some PyLint cleanup.
2023-03-10 14:25:50 -06:00
Chris Hennes
2b0a4dc643 Addon Manager: Create NetworkManager class
To enable single-login authenticated proxy use, and simplified multi-threaded
network accesses, this commit adds a new wrapper around a QNetworkAccessManager
and includes a global instantiation of the class intended to exist for the
lifetime of the program. This instance can be used to enqueue any number of
network requests, which the manager will send out to the networking subsystem
in an appropriate manner.
2022-01-25 13:30:58 -06:00
Chris Hennes
d1a94de371 Addon manager: install dependencies (#5376)
Addon Manager: Dependency Installation

The Addon Manager can now attempt to use pip directly to install
required packages as specified in either metadata.txt or
requirements.txt files provided by AddOns. The packages are installed
into FreeCAD.getUserAppDataDir()/AdditionalPythonPackages directory.
Only simplified requirements.txt data is supported: any version
information is stripped out, and only packages are supported (that is,
no pip arguments, included files, etc.). Further, packages are checked
against a list of allowed packages prior to being suggested for
installation. Addon authors should submit a PR to the FreeCAD repo
adding their requirements to the allowed list, for packages that are not
already on the list (this is a malware-prevention mechanism).
2022-01-21 10:19:21 -06:00
Chris Hennes
4c9191d489 Addon manager dependency resolver (#5339)
Squashed:
* Addon Manager: Refactor metadata.txt download
* Addon Manager: Basic dependency walker
* Addon Manager: Add basic support for dependencies
* Addon Manager: Improve network detection messaging
* Addon Manager: Black reformat
* Addon Manager: Display dependency info in dialog
* Addon Manager: Dependency dialog added
* Addon Manager: Improve display of update all results
* Addon Manager: Improve display of package list
* Addon Manager: Fix codespell
* Addon Manager: Clean up unused signal
2022-01-07 10:16:44 -06:00
Chris Hennes
ae5391eaf9 Addon Manager: Clean up report window output 2021-12-30 20:06:22 -06:00
Chris Hennes
f9fb1c9abb Addon Manager: Fix hashing with Qt 5.9 2021-12-20 14:21:00 -06:00
Chris Hennes
acfde1a4b6 Addon Manager: Bug fixes for detailed display 2021-12-18 20:29:42 -06:00
Chris Hennes
787b1e0f56 Addon Manager: Black reformatting 2021-12-18 20:29:42 -06:00
Chris Hennes
52da213a3c Addon Manager: Improve cache behavior
Also includes a number of bug fixes.
2021-12-18 20:29:42 -06:00
Chris Hennes
a0992902de Addon Manager: Begin UI redesign
Migrate to a UI that looks more like other software package managers, giving
more space to each addon by hiding the list when an addon is selected, and
providing a "back" button to get back.

Implements a two-style view option for the list of addons: expanded and
condensed, via a delegate that provides the drawing function for each row in
the table based on two different widget designs.
2021-12-18 20:29:42 -06:00
Chris Hennes
bd6b3eb404 Addon Manager: Bugfixes and cleanup of refactor 2021-12-18 20:29:42 -06:00
Chris Hennes
768a0f086f Addon Manager: Rework backend to use package.xml
This shifts to use the model-view-controller pattern for the list of addons,
and moves to using a full model class rather than an indexed array for the
data storage and management. This enables much more information to be stored
as part of the new AddonManagerRepo data type. It now wraps the Macro class
for macros, supports Preference Packs, and provides access to the Metadata
object.
2021-12-18 20:29:42 -06:00