Extension Manager

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
User avatar
mnesarco
Posts: 153
Joined: Thu Mar 26, 2020 8:52 pm

Re: Extension Manager

Postby mnesarco » Wed Sep 16, 2020 11:01 pm

vanuan wrote:
Wed Sep 16, 2020 10:46 pm
I'd say the main benefit of introducing a well known technology is attracting more developers rather than trying to mimic a workflow of existing developers. With custom html template engine and custom protocol I'd say you limit developer participation even further without any clear benefit.
- Most freecad developers are not web developers.
- Have you seen the code?, the templates are many orders of magnitude simpler that any React project. I Love reactjs, but the use case does not require another build framework. I tried to keep javascript at minimun and python at maximum. It is just my approach, maybe I am wrong about that.

vanuan wrote:
Wed Sep 16, 2020 10:46 pm
Do you have any intention on upstreaming QWebEngine-based MDI window into the main FreeCAD repository?
Yes the whole project was created with the intention to replace the old Addon Manager. But going from proposal to mainstream will take some time. There are running discussions about extensions standardization...
User avatar
Kunda1
Posts: 8051
Joined: Thu Jan 05, 2017 9:03 pm

Re: Extension Manager

Postby Kunda1 » Wed Sep 16, 2020 11:06 pm

mnesarco wrote:
Wed Sep 16, 2020 11:01 pm
Yes the whole project was created with the intention to replace the old Addon Manager. But going from proposal to mainstream will take some time. There are running discussions about extensions standardization...
Lets start this. The idea was to make a formal FreeCAD Enhacement Proposal (FEP) of what the standard would look like. Do you feel like taking point on that ?

Edit: typo
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
mnesarco
Posts: 153
Joined: Thu Mar 26, 2020 8:52 pm

Re: Extension Manager

Postby mnesarco » Wed Sep 16, 2020 11:23 pm

Kunda1 wrote:
Wed Sep 16, 2020 11:06 pm
Lets start this. The idea was to make a formal FreeCAD Enhacement Proposal (FEP) of what the standard would look like. Do you feel like taking point on that ?
Sure, I was one of the main proponents. I was working on this few months ago, but then I was in a health situation that convined with the pandemic outage put me in a situation with very low time availability. I am restarting myself slowly, I am very interested in this topic.

This is the original topic: https://forum.freecadweb.org/viewtopic.php?f=22&t=47460
matsievskiysv
Posts: 7
Joined: Thu Sep 17, 2020 4:10 pm

Re: Extension Manager

Postby matsievskiysv » Thu Sep 17, 2020 6:34 pm

I see that you use hardcoded lists of obsolete addons (https://github.com/mnesarco/FreeCAD_Ext ... flags.json). Maybe this list belongs to the https://github.com/FreeCAD/FreeCAD-addons repo? It makes sense to manage these lists from there.
User avatar
mnesarco
Posts: 153
Joined: Thu Mar 26, 2020 8:52 pm

Re: Extension Manager

Postby mnesarco » Thu Sep 17, 2020 7:25 pm

matsievskiysv wrote:
Thu Sep 17, 2020 6:34 pm
I see that you use hardcoded lists of obsolete addons (https://github.com/mnesarco/FreeCAD_Ext ... flags.json). Maybe this list belongs to the https://github.com/FreeCAD/FreeCAD-addons repo? It makes sense to manage these lists from there.
It is not hardcoded, it is externalized to a json file. The idea is to get that file from a trusted source (ideally from the FreeCAD-addons) but I have no commit permissions there and this ExtMan is still not official thing. So I saved it locally and it can be trivally relocated.
vocx
Posts: 5068
Joined: Thu Oct 18, 2018 9:18 pm

Re: Extension Manager

Postby vocx » Thu Sep 17, 2020 9:57 pm

mnesarco wrote:
Thu Sep 17, 2020 7:25 pm
It is not hardcoded, ...
Please read this Addon Manager sustainability issues. I'd like your opinion of a self-updating addon manager, or another solution for that problem.

Basically, it's the problem of what to do if the online repository for addons changes and we cannot parse it any more using the current Addon Manager. This seems to be the case with v0.18; we updated the Addon Manager in v0.19, but in v0.18 the code is static and no longer works with the GitHub page.

If in the life of a stable release our online repository changes, how can we provide an updated Addon Manager to take into account those changes? Fortunately, workbenches can always be installed manually (How_to_install_additional_workbenches) but this isn't very user friendly.
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
matsievskiysv
Posts: 7
Joined: Thu Sep 17, 2020 4:10 pm

Re: Extension Manager

Postby matsievskiysv » Fri Sep 18, 2020 11:31 am

mnesarco wrote:
Thu Sep 17, 2020 7:25 pm
matsievskiysv wrote:
Thu Sep 17, 2020 6:34 pm
I see that you use hardcoded lists of obsolete addons (https://github.com/mnesarco/FreeCAD_Ext ... flags.json). Maybe this list belongs to the https://github.com/FreeCAD/FreeCAD-addons repo? It makes sense to manage these lists from there.
It is not hardcoded, it is externalized to a json file. The idea is to get that file from a trusted source (ideally from the FreeCAD-addons) but I have no commit permissions there and this ExtMan is still not official thing. So I saved it locally and it can be trivally relocated.
Could you upload these lists to the https://github.com/FreeCAD/FreeCAD-addons? I would modify Addon Manager to use them as well.
User avatar
mnesarco
Posts: 153
Joined: Thu Mar 26, 2020 8:52 pm

Re: Extension Manager

Postby mnesarco » Fri Sep 18, 2020 1:58 pm

vocx wrote:
Thu Sep 17, 2020 9:57 pm
mnesarco wrote:
Thu Sep 17, 2020 7:25 pm
It is not hardcoded, ...
Please read this Addon Manager sustainability issues. I'd like your opinion of a self-updating addon manager, or another solution for that problem.

Basically, it's the problem of what to do if the online repository for addons changes and we cannot parse it any more using the current Addon Manager. This seems to be the case with v0.18; we updated the Addon Manager in v0.19, but in v0.18 the code is static and no longer works with the GitHub page.

If in the life of a stable release our online repository changes, how can we provide an updated Addon Manager to take into account those changes? Fortunately, workbenches can always be installed manually (How_to_install_additional_workbenches) but this isn't very user friendly.
In the case of ExtMan, it is an external workbench, it is very easy to self-update it, I will add an option.
User avatar
mnesarco
Posts: 153
Joined: Thu Mar 26, 2020 8:52 pm

Re: Extension Manager

Postby mnesarco » Fri Sep 18, 2020 2:11 pm

matsievskiysv wrote:
Fri Sep 18, 2020 11:31 am
mnesarco wrote:
Thu Sep 17, 2020 7:25 pm
matsievskiysv wrote:
Thu Sep 17, 2020 6:34 pm
I see that you use hardcoded lists of obsolete addons (https://github.com/mnesarco/FreeCAD_Ext ... flags.json). Maybe this list belongs to the https://github.com/FreeCAD/FreeCAD-addons repo? It makes sense to manage these lists from there.
It is not hardcoded, it is externalized to a json file. The idea is to get that file from a trusted source (ideally from the FreeCAD-addons) but I have no commit permissions there and this ExtMan is still not official thing. So I saved it locally and it can be trivally relocated.
Could you upload these lists to the https://github.com/FreeCAD/FreeCAD-addons? I would modify Addon Manager to use them as well.
I have not commit access to https://github.com/FreeCAD/FreeCAD-addons, if you have, feel free to copy these files there and I will update ExtMan to download them from there.

Files:

(https://github.com/mnesarco/FreeCAD_Ext ... rces/data/*.json)

Lists of obsolete, py2only and banned extensions:

Code: Select all

ExtMan/freecad/extman/resources/data/flags.json
List of official extensions sources: (FreeCAD-addons, FreeCAD-macros, wiki.freecadweb.org)

Code: Select all

ExtMan/freecad/extman/resources/data/sources.json
matsievskiysv
Posts: 7
Joined: Thu Sep 17, 2020 4:10 pm

Re: Extension Manager

Postby matsievskiysv » Fri Sep 18, 2020 3:12 pm

Btw, what is the purpose of the blacklist?