Skip to content
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

Make LakeFS distribution of USD Libs and AYON USD Resolver optional #72

Merged
merged 8 commits into from
Oct 28, 2024

Conversation

BigRoy
Copy link
Collaborator

@BigRoy BigRoy commented Oct 18, 2024

Changelog Description

Make LakeFS distribution of USD Libs and AYON USD Resolver optional.

Additional info

  • Remove the experimental checkbox, which is now the "enable" button on the LakeFS distribution section.
  • Cleanup setting titles/docstrings

Fixes #71

image

TODO

  • Disable the generationg of the AYON USD Resolver Pinning File if the Resolver is not downloaded (or better yet, make that a checkbox of its own somewhere to enable/disable that plug-in)

Testing notes:

  1. Deploy new USD addon package

  2. Launcher and applications should run fine without USD libs and resolver.

  3. Then, Enable the LakeFS distribution in settings: ayon+settings://usd/lakefs/enabled
    image

  4. When enabled, it should behave like before and check for latest USD libs and resolvers + download and configure them accordingly for usage in the applications.

+ Remove the experimental checkbox, which is now the "enable" button on the LakeFS distribution section.
+ Cleanup setting titles/docstrings
@BigRoy BigRoy added the type: enhancement Improvement of existing functionality or minor addition label Oct 18, 2024
@BigRoy BigRoy self-assigned this Oct 18, 2024
@BigRoy BigRoy requested a review from Lypsolon October 18, 2024 14:11
Copy link
Collaborator

@Lypsolon Lypsolon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its capable of downloading and installing a resolver and the usd libs.
tested on hou20.5 almalinux9

idk where it comes from.
but the lakeFs keys are in the addon ? i believe they should not ?
aaaaand the addon points at the Houdini branch of lakeFs not the v0.2.0

@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 18, 2024

but the lakeFs keys are in the addon ? i believe they should not ?
aaaaand the addon points at the Houdini branch of lakeFs not the v0.2.0

That's likely because you had previously configured this "version" of the addon and there hasn't been a version bump since.. so your server still applies those same settings.

I have not changed any of the defaults or settings values.

mkolar
mkolar previously requested changes Oct 18, 2024
Copy link
Member

@mkolar mkolar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would remove any mention of lakeFS from the UI and the keys completely. The distribution mechanism is irrelevant for the admin and users. We're configuring whether they will get AYON USD binaries or not, that's it.

@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 18, 2024

I would remove any mention of lakeFS from the UI and the keys completely. The distribution mechanism is irrelevant for the admin and users. We're configuring whether they will get AYON USD binaries or not, that's it.

Changing the keys would mean backwards incompatibility with settings. Which is fine of course - but just checking if you're ok with that? @mkolar

@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 18, 2024

@mkolar Here's a backwards compatible change:

image

The server URI and repository URI are very related to LakeFs - would you like me to remove LakeFs from that label too?

Also, the only backwards incompatible change I'd need to make then is to change the settings key ayon+settings://usd/lakefs to e.g. ayon+settings://usd/distribution or ayon+settings://usd/binarydistribution. Thoughts/preferences @mkolar ?

@antirotor
Copy link
Member

antirotor commented Oct 21, 2024

While not trying to wreak havoc on the settings, wouldn't be better to have:

USD
	| -- Binary Distributions
                | -- LakeFS  [X]
                          | -- Resolver Application LakeFS Paths
                | -- URL based  [X]
 ...                

That way you communicate that LakeFS is just one of the possible distribution methods (we might then add more or remove some), URL basesd is basically Resolver Application Overwrites that IMO isn't very descriptive title anyway.

would be good to have LakeFS and URL mutually exclusive to simplify things.

client/ayon_usd/addon.py Outdated Show resolved Hide resolved
BigRoy and others added 2 commits October 21, 2024 11:26
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 21, 2024

That way you communicate that LakeFS is just one of the possible distribution methods (we might then add more or remove some), URL basesd is basically Resolver Application Overwrites that IMO isn't very descriptive title anyway.

Wait, what? That is currently for URL based distributions? I'm at loss maybe at what those settings do.
Anyway, I'd love to restructure that and clean that up - and am personally fine with this now being still in experimental to do the big backwards incompatible cleanup swoop of that now. However, I'm not entirely sure what all the settings are meant to do, etc.

Should we maybe do a call tomorrow to discuss?

@BigRoy BigRoy requested a review from mkolar October 21, 2024 21:22
@Lypsolon
Copy link
Collaborator

While not trying to wreak havoc on the settings, wouldn't be better to have:

USD
	| -- Binary Distributions
                | -- LakeFS  [X]
                          | -- Resolver Application LakeFS Paths
                | -- URL based  [X]
 ...                

That way you communicate that LakeFS is just one of the possible distribution methods (we might then add more or remove some), URL basesd is basically Resolver Application Overwrites that IMO isn't very descriptive title anyway.

would be good to have LakeFS and URL mutually exclusive to simplify things.

i just want to say i cant help but feel like we are about to over complicate this thing again.
the PR says it intends to make the Resolver download optional.
how about in this PR we do just that and nothing more ?

the PR is doing a few more things that its title says already maybe we should write an Issue for the Rest of the changes.

@Lypsolon
Copy link
Collaborator

@BigRoy
i think your TODO might be better of as an Issue and a separate PR so we can keep this one nice and small.

Disable the generation of the AYON USD Resolver Pinning File if the Resolver is not downloaded (or better yet, make that a checkbox of its own somewhere to enable/disable that plug-in)

@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 22, 2024

I agree - this PR is currently a much needed improvement and backwards compatible. I'd be happy to merge this and follow up with another that restructures it to be backwards incompatible (e.g. refactoring the lakefs attribute itself in settings to more generic or into a binary distribution subgroup).

And same goes for the file pinning - I feel like it's not critical since it can be called just fine without the resolver in use (as far as I know?)

@Lypsolon
Copy link
Collaborator

I agree - this PR is currently a much needed improvement and backwards compatible. I'd be happy to merge this and follow up with another that restructures it to be backwards incompatible (e.g. refactoring the lakefs attribute itself in settings to more generic or into a binary distribution subgroup).

And same goes for the file pinning - I feel like it's not critical since it can be called just fine without the resolver in use (as far as I know?)

jap the pinning file env variable is not used elsewhere, it would just not be used.

@Lypsolon
Copy link
Collaborator

I would remove any mention of lakeFS from the UI and the keys completely. The distribution mechanism is irrelevant for the admin and users. We're configuring whether they will get AYON USD binaries or not, that's it.

i must say i would avoid this for now.
as roy mentioned currently the change is Backwards compatible.
also we cant / should not include the keys in source code (even GitHub will mark it as wrong)

the auth tool that connects with Ayon Cloud is not done and it might be more important to make it easy to use now than to have every feature in. the PR is named make it optional after all.

@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 23, 2024

The keys are changed and the labels too.

image

And it still works for me.
Ready for final review.
@mkolar @dee-ynput ?

Copy link
Collaborator

@Lypsolon Lypsolon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generally works.
test Almalinux 9 houdini20.5

but this function still is not cached even tho it behaves like it is.
this was marked before, i think we should remove the cache or make it cached.

def get_global_lake_instance(settings=None):

@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 25, 2024

generally works. test Almalinux 9 houdini20.5

but this function still is not cached even tho it behaves like it is. this was marked before, i think we should remove the cache or make it cached.

def get_global_lake_instance(settings=None):

Thanks @Lypsolon - I agree we should fix that. I'd like to do that in a follow up PR if you're ok. I'm worried that caching it may suddenly introduce other issues like maybe the lakectl instance facing timeouts from it lingering around long enough or whatever.

If you could approve this, then I'll merge and set up a follow up PR.

@Lypsolon
Copy link
Collaborator

generally works. test Almalinux 9 houdini20.5
but this function still is not cached even tho it behaves like it is. this was marked before, i think we should remove the cache or make it cached.

def get_global_lake_instance(settings=None):

Thanks @Lypsolon - I agree we should fix that. I'd like to do that in a follow up PR if you're ok. I'm worried that caching it may suddenly introduce other issues like maybe the lakectl instance facing timeouts from it lingering around long enough or whatever.

If you could approve this, then I'll merge and set up a follow up PR.

sounds good i already approved it so lets merge it.

@BigRoy BigRoy dismissed mkolar’s stale review October 28, 2024 13:25

Stale review - if new comments come up we can resolve them later in a follow up PR

@BigRoy BigRoy merged commit b402efb into develop Oct 28, 2024
1 check passed
@BigRoy BigRoy deleted the enhancement/binary_distribution_behind_toggles branch October 28, 2024 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Improvement of existing functionality or minor addition
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow the binary distribution via LakeFS to be optional
5 participants