Add ons manager - development and bugs topic

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
mnesarco
Posts: 475
Joined: Thu Mar 26, 2020 8:52 pm

Re: Add ons manager - development and bugs topic

Post by mnesarco »

Syres wrote: Mon May 25, 2020 7:07 pm
One test I carried out from the Python Console that should work for all platforms and therefore hopefully doesn't need all this special Windows treatment is:

Code: Select all

import os.path
os.path.join(App.getHomePath(),"bin")
which on my Win7 gives:

Code: Select all

'E:/Data/My Downloads/FreeCAD_0.19.21189_x64_LP_12.1.6_PY3QT5-WinVS2015/FreeCAD_0.19.21189_x64_LP_12.1.6_PY3QT5-WinVS2015/bin'
Not sure whether that makes the situation better or worse but I'm sure it's used elsewhere but you can confirm on your install as well?
Thanks Syres, i already use os.path everywhere, but the problem is not that. Anyway i am refactoring everything to use pathlib now, so forget any existing version. I will ping back when commit a new refactored version.
User avatar
mnesarco
Posts: 475
Joined: Thu Mar 26, 2020 8:52 pm

Re: Add ons manager - development and bugs topic

Post by mnesarco »

Hi Friends,

I have migrated everything from os.path to pathlib. I have done some tests in Linux and Windows 10. Looks ok but there could be some regressions. I expect that all the windows path insanity is fixed now for win7+

Probably it is better to try a fresh install.

Packages already installed have no enough metadata but if you update from the cloud source, they will be upgraded.

There are many things pending yet, I will continue:

- Manage Custom repositories
- Uninstalls
- Command line interface
- Alternative Mod root (not sure about this)
- Update notifications
- Some performance enhancements
- Proxy management

https://github.com/mnesarco/FreeCAD_ExtMan
Syres
Veteran
Posts: 2899
Joined: Thu Aug 09, 2018 11:14 am

Re: Add ons manager - development and bugs topic

Post by Syres »

mnesarco wrote: Tue May 26, 2020 3:46 am I have migrated everything from os.path to pathlib. I have done some tests in Linux and Windows 10. Looks ok but there could be some regressions. I expect that all the windows path insanity is fixed now for win7+

Probably it is better to try a fresh install.
Thanks for the perseverance, all starts error free on both my Win7 and Linux versions.
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: Add ons manager - development and bugs topic

Post by Kunda1 »

Fantastic progress!!

Question: Would you mind adding instructions on how to install regardless of the fact that it's still in Alpha? (you could drop in a warning explaining it's for testers and non-end-users)
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
User avatar
mnesarco
Posts: 475
Joined: Thu Mar 26, 2020 8:52 pm

Re: Add ons manager - development and bugs topic

Post by mnesarco »

Syres wrote: Tue May 26, 2020 7:54 am Thanks for the perseverance, all starts error free on both my Win7 and Linux versions.
Thank you for your tests and reviews Syres.

Kunda1 wrote: Tue May 26, 2020 12:07 pm Question: Would you mind adding instructions on how to install regardless of the fact that it's still in Alpha? (you could drop in a warning explaining it's for testers and non-end-users)
Sure, let me finish some things today an I will update the readme.
User avatar
mnesarco
Posts: 475
Joined: Thu Mar 26, 2020 8:52 pm

Re: Add ons manager - development and bugs topic

Post by mnesarco »

HI Friends,

I have one question. I need to maintain a collection of user defined package sources, it is not only a list of urls, it is a full json file. I can Maintain it in a real json file inside UserAppDataDir but i can also use App.ParamGet and put the json content inside a String parameter. Which approach do you recommend?

Currently i save some json files in a cache dir but all data there is disposable, in this case it is not the same because is user configuration data.
Syres
Veteran
Posts: 2899
Joined: Thu Aug 09, 2018 11:14 am

Re: Add ons manager - development and bugs topic

Post by Syres »

mnesarco wrote: Tue May 26, 2020 5:26 pm I have one question. I need to maintain a collection of user defined package sources, it is not only a list of urls, it is a full json file. I can Maintain it in a real json file inside UserAppDataDir but i can also use App.ParamGet and put the json content inside a String parameter. Which approach do you recommend?
I'll give you a fact rather than an opinion if that's OK? The Path Wb has a ToolLibrary text field which in my case has 500 characters in it which is in Parameter BaseApp\Preferences\Mod\Path\ToolLibrary-Main so some kind of precedent has been set but as with all these things I'm sure there needs to be a limit somewhere.
User avatar
mnesarco
Posts: 475
Joined: Thu Mar 26, 2020 8:52 pm

Re: Add ons manager - development and bugs topic

Post by mnesarco »

Hi Friends,

I have pushed a new version, now with custom repositories management. and some improvements.

https://github.com/mnesarco/FreeCAD_ExtMan

FreeCAD 0.19_136.png
FreeCAD 0.19_136.png (130.05 KiB) Viewed 1133 times
Syres
Veteran
Posts: 2899
Joined: Thu Aug 09, 2018 11:14 am

Re: Add ons manager - development and bugs topic

Post by Syres »

mnesarco wrote: Mon Jun 01, 2020 1:22 am I have pushed a new version, now with custom repositories management. and some improvements.
I deleted the old Wb in it's entirety and installed the new one but unfortunately the new version won't load, Report View output:

Code: Select all

Init: Initializing freecad.extman
During initialization the error "module 'freecad.extman' has no attribute 'utils'" occurred in freecad.extman
--------------------------------------------------------------------------------
Traceback (most recent call last):
  File "<string>", line 150, in InitApplications
  File "importlib\__init__.py", line 126, in import_module
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\init_gui.py", line 27, in <module>
    from freecad.extman.gui.browser import install_router, start_browser
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\gui\browser.py", line 25, in <module>
    from freecad.extman.gui.controller import actions, message_handlers
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\gui\controller.py", line 28, in <module>
    from freecad.extman import utils, log_err, tr
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\utils\__init__.py", line 32, in <module>
    from freecad.extman.sources import PackageInfo
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\sources\__init__.py", line 25, in <module>
    import freecad.extman.utils as utils
AttributeError: module 'freecad.extman' has no attribute 'utils'
--------------------------------------------------------------------------------
Init:      Initializing freecad.extman... failed
--------------------------------------------------------------------------------
Traceback (most recent call last):
  File "<string>", line 150, in InitApplications
  File "importlib\__init__.py", line 126, in import_module
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\init_gui.py", line 27, in <module>
    from freecad.extman.gui.browser import install_router, start_browser
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\gui\browser.py", line 25, in <module>
    from freecad.extman.gui.controller import actions, message_handlers
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\gui\controller.py", line 28, in <module>
    from freecad.extman import utils, log_err, tr
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\utils\__init__.py", line 32, in <module>
    from freecad.extman.sources import PackageInfo
  File "C:\Users\JPS\AppData\Roaming\FreeCAD\Mod\FreeCAD_ExtMan\freecad\extman\sources\__init__.py", line 25, in <module>
    import freecad.extman.utils as utils
AttributeError: module 'freecad.extman' has no attribute 'utils'
--------------------------------------------------------------------------------
Init: Loading FreeCAD GUI
OS: Windows 7 SP 1 (6.1)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21325 (Git)
Build type: Release
Branch: master
Hash: 2cb9b147f13419f019f9808ace21d3d2ceae99c5
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United Kingdom (en_GB)

OS: Linux Mint 19.3 (X-Cinnamon/cinnamon)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21349 (Git)
Build type: Unknown
Branch: master
Hash: 28222fe066b60ae5c99dce4e5b022d270cad250f
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedKingdom (en_GB)


Edit: Added Linux info as error message is the same
User avatar
mnesarco
Posts: 475
Joined: Thu Mar 26, 2020 8:52 pm

Re: Add ons manager - development and bugs topic

Post by mnesarco »

Syres wrote: Mon Jun 01, 2020 8:06 am
I deleted the old Wb in it's entirety and installed the new one but unfortunately the new version won't load, Report View output:

Code: Select all

Init: Initializing freecad.extman
During initialization the error "module 'freecad.extman' has no attribute 'utils'" occurred in freecad.extman
OS: Windows 7 SP 1 (6.1)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21325 (Git)
Build type: Release
Branch: master
Hash: 2cb9b147f13419f019f9808ace21d3d2ceae99c5
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United Kingdom (en_GB)

OS: Linux Mint 19.3 (X-Cinnamon/cinnamon)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21349 (Git)
Build type: Unknown
Branch: master
Hash: 28222fe066b60ae5c99dce4e5b022d270cad250f
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedKingdom (en_GB)


Edit: Added Linux info as error message is the same
Wow this is very weird. The utils package is there. I have the same linux config and it works in my environment. I will check on windows
Post Reply