[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