-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Attributes : Change type of extraAttributes
to CompoundObjectPlug
#4047
Attributes : Change type of extraAttributes
to CompoundObjectPlug
#4047
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
The transition to 0.59 will require a lot of testing anyway, so we would not mind an extra feature to test. I am slightly concerned about forward-compatibility (saving a look or a template in 0.59 and loading it in 0.58), but it is unlikely that artists will use extraAttributes plug in their scripts. |
@themissingcow, thanks for the review. I've added one further commit - 4df9a97 - to deal with the problem we discussed earlier, whereby although we could serialise @alex-savenko-at-cinesite, thanks for the vote for 0.59 and for the reasoning behind it. I just want to clarify that 0.59.X isn't an option, as we can't make an ABI breaking change like this in a minor version. |
Am I correct in thinking this would be the first serialization break in 0.59? Is there any way to provide forward compatibility in 0.58 (so a gfr or grf created in 0.59 can be loaded in 0.58)? My concern is that we're expecting 0.59 to have several small-ish bugs (related to dependency updates), and when that happens it usually means people switching back and forth several times, and an extended period where we have to lockdown studio level publishing of Boxes... |
I'd expect some from my programming too 🙃. Joking aside there are a lot of spreadsheet changes. It's had reasonable testing here, but you know what its like with a UI as complex as that one... |
I think that it would be possible to add, in a 0.58 installation, a config that does the opposite of what the config in this PR is doing:
I ran a quick test here and it seems to do the job (in 0.58):
|
Nearly. There are changes to TransformPlug/Transform2DPlug to fix serialisation of default values for references, and they won't be loadable in 0.58, because it lacks the extended constructor needed. As far as I know, the Box/Reference workflow overhaul in 0.59 still generates
I'm hesitant to say it can be made to work perfectly for all situations, but I just checked and there's actually a fair amount of compatibility already. If you load
I think that's a very reasonable concern, but I'm not sure 0.60 will provide any more certainty in that regard. And 0.59 has at least benefited from a decent beta period (mostly tested externally to Cinesite/IE admittedly). |
What if you do the opposite, author the expression in Gaffer 0.59 (using CompoundObject) and load that into 0.58? Seems that case probably isn't handled now, but would be with a shim like Ivan proposed, correct? |
It needed a bit more than just the shim, but I've dealt with this case in #4049. |
This dates back to when Attributes derived from SceneElementProcessor, which it no longer does.
This allows it to express the full range of possible of attributes, including shader networks.
4df9a97
to
f02357d
Compare
Rebased to fix merge conflict. |
This allows it to express the full range of possible attributes, including shader networks. The initial motivation is for @alex-savenko-at-cinesite to be able to use it to convert large shading node graphs into simple blobs on a CustomAttributes node at lookdev publish time. This provides a halfway house between fully dynamic and fully baked lookdev.
I'm a little uncomfortable with proposing this so close to the release of 0.59 (tomorrow, if all goes well). But I have included a unit test to cover the three backwards compatibility cases I could think of -
setValue( compoundData )
,setInput( atomicCompoundDataPlug )
and expressions outputting CompoundData. Would welcome opinions from @andrewkaufman, @ivanimanishi and @alex-savenko-at-cinesite as to whether we should include this in 0.59 or save it for 0.60.