Skip to content

Instantly share code, notes, and snippets.

@mottosso
Last active July 19, 2019 15:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mottosso/90e28ab935f20aea7d7bce95c7969b41 to your computer and use it in GitHub Desktop.
Save mottosso/90e28ab935f20aea7d7bce95c7969b41 to your computer and use it in GitHub Desktop.
19th July 2019 - Visualisation

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


Graphing

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.


Latest Version

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.

allzpark_latest


Localisation Disabled

I had accidentally disabled the ability to localise packages! Restored that today.


Unreliable Localisation Toggle

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.


Bad sorting of versions

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.


Filter Dangerous for Artists

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.


Next Week

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment