Today I'd like to have a look at visualisation. One of the things that appeared early morning was a need to graph package relationships.
New issues
- mottosso/allzpark#51
- mottosso/allzpark#57
- mottosso/allzpark#58
- mottosso/allzpark#59
- mottosso/bleeding-rez#68
- mottosso/bleeding-rez#69
- mottosso/bleeding-rez#70
- mottosso/bleeding-rez#71
Rez is able to serialise a context into a GraphViz-compatible graph, like this.
rez env alita maya graphviz bleeding_rez python -- rez context --graph
# rendering image to c:\users\manima\appdata\local\temp\resolve-dot-oaodzt.png...
# loading image viewer (browser)...
However as you've noticed, it depends on the system package GraphViz, which is a whopping 111 mb on Windows, and luckily available on Scoop.
rez env scoopz -- install graphviz
Which is another reason, alongside Python itself, for implementing rez-yumz
so as to generate the same package but for Red Hat-based systems like CentOS.
We also discovered a bug in the bleeding-rez implementation, something that happened during the implementation of support for Python 3; the pydot
library was updated which had changed it's interface for generating these dot
files. So I patched that up, and things should run smoothly now.
Next there was a request to visualise whether a package version was the latest, or whether there was a later *.beta
package available.
1h later
Ok, it wasn't too challenging to implement. One of the things I had to do however was pre-fetch available versions of a given package. That's currently happening in the main thread, which means that if there are enough versions of a given package the user will experience a lag. Time will tell whether it's noticeable, as it's something that could also be computed in the background, prior to passing data to the model. It would just take a little more work (and introduce a post-processing step to the Rez resolve, and thus increase complexity somewhat).
Here's what it looks like; obviously missing some appropriate styling.
I had accidentally disabled the ability to localise packages! Restored that today.
The "Use localised packages" didn't accurately reflect the current state. The issue was not a mismatch between a default value in the GUI, and one in the controller. The GUI defaulted to True
in case the artist had not before toggled the box, however the controller defaulted to False
, resulting in the GUI drawing a checked box but the controller appearing to ignore it. Fixed that today as well.
Versions were sorted naively, whereby 1.10
is placed before 1.9
when we, as humans, would have expected 1.9
to come first. Fixed this today.
The Exclude Filter isn't something an artist should necessarily edit, and even though the Packages Tab is typically hidden from view (as an "advanced" tab) there are still occasions when they'll need it, but not the exclude filter.
So I've moved it into the Preferences Tab for safekeeping.
A productive week! At the moment, broken packages currently doesn't react nicely with the GUI, so I'll have a look at mottosso/allzpark#58 to see if we can't make the development experience a little nicer.
The getting-started guide is currently incomplete, so I'll run another pass over that, and try and get some beta testers and proof-readers to tag along and make sure everything is tip-top.