[Soc-2016-dev] Weekly Report #05, Python Package Manager

Peter D. Cassetta peter at fingertipsoft.com
Sun Jun 26 09:01:17 CEST 2016


Hi all,

During the fifth week of GSoC, I've been catching up on work from last 
week, and working towards my goal for Jun 20 - Jul 1 as stated in my 
proposal: "Enable rollback and the option to prevent deleting original 
add-on after update, restoring the original add-on if an update fails."

I am almost back on schedule. The add-on is now functional, with some 
limitations:

- Add-ons to download must be hosted locally at 
http://localhost:8000/add-on.py (or .zip for multi-file add-ons)
- Add-ons on the index.json (from blender.org gitweb) are only displayed 
if they are either 1) not installed locally, or 2) installed in the USER 
path. This is due to permissions concerns which will be addressed more 
fully at some later time.
- The add-on currently blocks Blender while downloading/installing.

Regarding the last point: I am working on this, using the asyncio module 
to download and install add-ons on asynchronously. I am still working on 
catching any raised exceptions and updating the UI appropriately during 
the process.

As for my goal for Jun 20 - Jul 1, I have already completed part of it: 
"restoring the original add-on if an update fails". The package manager 
add-on save the downloaded add-on to my add-on's folder, and does not 
overwrite the original add-on until the download is successful.

Tomorrow I plan to submit a patch with aforementioned asynchronous 
support, and then do some cleanup according to feedback from Sybren, at 
which point I will be completely back on track.

(My commits can be viewed at 
https://developer.blender.org/diffusion/BPMA/repository/master/)

Next week I'll be adding in rollback support, so if the user finds an 
updated add-on doesn't work as expected, they can easily roll back to a 
previous version.

Best regards,
Peter Cassetta


More information about the Soc-2016-dev mailing list