ynput / ayon-python-api

Apache License 2.0
8 stars 3 forks source link

[DRAFT] Initial support for Version entities in Entity Hub #158

Open fabiaserra opened 2 months ago

fabiaserra commented 2 months ago

Start the work required to support Version entities on the Entity Hub so we will be able to update its status or other attributes.

BigRoy commented 2 months ago

Note that you can mark the PR itself as Draft instead of having to put it in the PR title.

Also, this PR seems to include https://github.com/ynput/ayon-python-api/pull/157 - is that intentional? nvm, fixed with https://github.com/ynput/ayon-python-api/pull/158/commits/7c90f0b34a554978c340c7f93ea7e32a09a9f27a

fabiaserra commented 2 months ago

I will let @iLLiCiTiT comment on how we should proceed with this

iLLiCiTiT commented 2 months ago

Version entity lives under product entity. It also does not make much sense to add version without representation entity.

Adding any of that to entity hub also changes how hub operates. As far as I know we don't have any huge need for this feature, and too be honest I don't have spare time for that now. You can try to add it on your own.

fabiaserra commented 2 months ago

Version entity lives under product entity. It also does not make much sense to add version without representation entity.

Adding any of that to entity hub also changes how hub operates. As far as I know we don't have any huge need for this feature, and too be honest I don't have spare time for that now. You can try to add it on your own.

How are you planning on adding support to sync statuses of Versions across any of the project management tools? Without that version statuses in AYON are useless because people will be expecting to be able to check both databases for ground truth of status, if the one in AYON is not on sync we won't be using it at all and all the places where they see Status in AYON on a version will be distracting and error prone if anyone tries to change it

fabiaserra commented 2 months ago

The changes done here https://github.com/ynput/ayon-python-api/pull/158/commits/7e7ae670aae5c5434879725c0d210d1693eed3cc now allow me to sync statuses on the versions in the ayon-shotgrid plugin

iLLiCiTiT commented 2 months ago

How are you planning on adding support to sync statuses of Versions across any of the project management tools?

Well, I guess we never though about syncing versions from other project management. Versions in AYON need product and representations, representations need specific data, how you'll get representation from project management.

fabiaserra commented 2 months ago

Well, I guess we never though about syncing versions from other project management. Versions in AYON need product and representations, representations need specific data, how you'll get representation from project management.

Until AYON is able to replace a fully production ready project management tool studios will continue to use those. Version management (status, tags, comments...) will continue to happen mostly in the project manager, if that info doesn't get synced across both, one becomes pointless, and given that AYON is the one lacking most of the features... it's easy to know which one will be.

This is not about creating the versions that are misssing in either, but syncing the data of already created versions on both systems. When a version gets created in AYON a version gets created in SG with a link to it. If I then update the status of that version in SG we need to update that in AYON as well. This PR allows me to do exactly that.

Creating versions (and the corresponding product and representations) would be great as well but that's not a must have.

To your question on how do you get representantion from project management? In SG there's the published files linked to a version that correspond to the representations so it would be easy to map that. In ftrack it's the components of the version... it would definitely be possible

iLLiCiTiT commented 2 months ago

To your question on how do you get representantion from project management? In SG there's the published files linked to a version that correspond to the representations so it would be easy to map that. In ftrack it's the components of the version... it would definitely be possible

I'm not talking about files, I'm talking about the rest of the representation entity data.

This is not about creating the versions that are misssing in either, but syncing the data of already created versions on both systems. When a version gets created in AYON a version gets created in SG with a link to it. If I then update the status of that version in SG we need to update that in AYON as well. This PR allows me to do exactly that.

That still requires ProductEntity.

fabiaserra commented 2 months ago

I'm not talking about files, I'm talking about the rest of the representation entity data.

Which data? A lot of the data fields are already being set in SG versions, the data that's missing would just be left as default or unset

That still requires ProductEntity.

For what reason? The SG <-> AYON linkage is happening at the version level, I'm updating the version entity directly, what do I need to update on the product?

iLLiCiTiT commented 2 months ago

Which data? A lot of the data fields are already being set in SG versions, the data that's missing would just be left as default or unset

Representation entity is not just files, random data would make it unusable, but this PR is about versions, ok.

For what reason? The SG <-> AYON linkage is happening at the version level, I'm updating the version entity directly, what do I need to update on the product?

I do understand but the entity hub is now missing an entity inbetween folder and version.

fabiaserra commented 2 months ago

Representation entity is not just files, random data would make it unusable, but this PR is about versions, ok.

As long as the id gets created and the paths filled up I don't see why it would be completely unusable (the fact that you say it is it worries me the system is more complex than it needs to be) but anyway, it's not the point of this PR nor my intention yet, this is only to allow syncing ALREADY created versions in both systems.

I do understand but the entity hub is now missing an entity inbetween folder and version.

It's missing quite a lot more than just that haha we can add the missing things as soon as they are needed. The product entity is not needed at all for the SG integration

iLLiCiTiT commented 2 months ago

It's missing quite a lot more than just that haha we can add the missing things as soon as they are needed. The product entity is not needed at all for the SG integration

I do understand, but that doesn't mean it should not be added.

fabiaserra commented 2 months ago

I do understand, but that doesn't mean it should not be added.

Yeah I agree it should be added, but not necessarily part of this PR

iLLiCiTiT commented 2 months ago

Yeah I agree it should be added, but not necessarily part of this PR

It should be added before VersionEntity.

fabiaserra commented 2 months ago

Yeah I agree it should be added, but not necessarily part of this PR

It should be added before VersionEntity.

Agree to disagree :) it's working fine for me and I'm not missing the product entity at all so I'm not going to work on that to make you guys approve this PR sorry

mkolar commented 2 weeks ago

@iLLiCiTiT we'll soon be starting the work on 2 way full sync for ftrack. Is it worth revisiting this?