[Soc-2017-dev] Weekly Report #07 - Package Manager
Ellwood Zwovic
gandalf3 at blendermonkey.com
Sat Jul 15 12:14:13 CEST 2017
My weekly report:
https://wiki.blender.org/index.php/User:Gandalf3/GSoC_2017/Reports#Week_7
== Week 7 ==
What I did this week:
* Added an install function.
* Started on gui. Basic browsing and filtering of packages is possible,
as well as (to some extend), installing.
In order to add a operator for collapsing/expanding of package entries I
ended up adding a hashed ID for each package. I was hoping to avoid
using any kind of unfriendly-to-humans identifier in the operator
interface, but it seems that the only way to "pass" a custom class
instance to an operator is to store it globally and, if there are many
to choose from, give it something it can identify one uniquely with.
I also started defining a property group to describe a package with the
idea of doing all internal storage, but I'm not sure if that's a good
approach either; it makes it harder to store arbitrary extra flags such
"is expanded".
Instead, I'm thinking that packages with the same name should be
"merged", in the sense that only one entry is presented in the GUI. That
entry could then have some extra display of alternate versions which may
be installed. This approach does the make risky assumption that no
actually different addons will ever share the same name, but as blender
doesn't allow same-name addons already, perhaps this assumption is
acceptable?
=== Questions ===
* How do info header progress bars work? The only thing I've found which
seems connected to them is this
[https://docs.blender.org/api/blender_python_api_2_78_3/bpy.types.UILayout.html#bpy.types.UILayout.template_running_jobs
undocumented `template_running_jobs()`] method.
=== Plans for next week ===
Add tracking of installed packages and an uninstall operator, update
README with testing instructions.
Also address some smaller UX-improvement things:
* Allow `repo.json` to be omitted from repository URLs.
* Improve responsiveness/add progress displays, listen for abort signals
on longer-running subprocesses.
* Prevent subprocesses operators from being started multiple times.
Ellwood
More information about the Soc-2017-dev
mailing list