Not sure that this is a valid issue. I tried to run the FamilySearch plugin on beta2 and it failed due to dependencies in the Mac version. If I manually install all of the dependencies into the package (since it is an AIO app), it works. If I just install from command line it does not fix the plugin (as expected).
But there is logic in the plugin to dynamically run pip:
pip.main (bunch of args)
The import fails.
Does the Mac AIO app need some additional files to allow importing pip to work? Or is this not worthwhile given permissions of the installed app would require pip to install into itself?
Or is there a better way to implement in the plugin?
Which dependencies need to be installed?
There is a new dependencies portion to the Gramps Plugin Registration (.gpr.py) specification. They should be added there.
The specific dependency is gedcomx-v1 >= 1.0.13 . That package has a slew of dependencies like packaging and requests which have further dependencies. All told, I had to add 8 packages.
Is the Plugin Registration list auto-loaded (via pip) or is it just a warning when a dependency is not fulfilled? I suspect most Mac users cannot add these dependencies (lack of knowledge how to add into the gramps app) themselves.
Is there documentation for this change? I didnt see a GEPS for it. Is there an example that I can check to see if it works on the Mac?
Looking at the .gpr.py for any Addon showing a “Requires” button in the new Addon Manager will give you examples of how to register pre-requisites in the .gpr.py file.
However, it looks like the Requirements dialog could be improved by IDing the plugin. If you have multiple dialogs showing so you can find an example with the same requirements, It is easy to lose track of the parent plugin.
The thread Internal server prerequistes and the new Addon Manager describes the new fields that can be added to the gpr file.
I suggest you post to the gramps-devel mailing list to ask about including pip in the Mac bundle. I don’t think that John Ralls reads this forum.
Good idea. I’ll add some text similar to “Addon <addon_name> requires:”.