A regression from handling the various issues that crop up for new users without any profile resulted in the version name of a profile not showing up until after you've explicitly selected one. You typically don't do that, so it would simply not show up. Bug, fixed.
The Graph functionality didn't always work, and I found the issue was with Rez related to the Python 3 transition, whereby it would store a dictionary as a string but include the dict_items
object type of Python 3, the one you get from str(my_dict.items())
. Under Python 2, this wasn't an issue as the type didn't exist. But in Python 3, we need to run it through list(my_dict.items())
in order to serialise it into plain tuples.
I'd like the GUI to be an extension of what errors crop up in the command-line. Currently, the errors that are actually handled by the GUI aren't propagated to the console window or parent shell. It was intentional, as a way to keep important messages more visible in the console. However, it assumes that our handling of the error is actually better than the original message, which isn't always the case. Especially not this early in the project, and especially not for unexpected reasons of the error.
So I've added the original exception back in, the GUI Console tab prints a greyed out version of it, which is then also replicated in the parent shell.
The Allzpark on PyPI does support both 2 and 3, but not its dependencies, namely PySide2. I had a closer look and found that you can actually make conditional requirements for a PyPI package, which is exactly what we need.
python-2?
PySidepython-3?
PySide2
Simple! The only crux was that rez-pip
didn't support this notion, so I had to upgrade it with some support.
Actively developing packages requires a constant re-scan. Currently, the way to trigger such a scan is by either switching between projects or patching/unpatching. That works, but is a little hacky and not very untuitive.
So with a future expansion of the profile select menu in mind, I've added a right-click with only one option so far; the Reset.
This performs an identical operation to applying a patch or switching between profiles or profile versions.
Next I'll have a look at making the Allzpark GUI work without a console on Windows, via the pythonw
executable.