HDA and versions, not very clear how it works

   3487   8   1
User Avatar
Member
46 posts
Joined: March 2015
Offline
Hey there!
Could somebody explain how HDA versions actually work please?
Based on documentation in order to version up the HDA you simply open asset manager right click on HDA and choose Copy..
Then you name it as myHDA::“version”.
It's all clear.

But them how do I know which version of HDA is currently used?
I could not find that info in HDA itself.
I thought right click “Use This Definition” option sets a version for my HDA, it even become green in the list of asset manager.
But the problem is I can choose multiple version by this way so it's not very clear what version I am at.
More over when I do that I don't see the difference between HDA versions, it just looks like it doesn't work at list the way I expect it to work.

I'd appreciate any help on how to create and switch between versions for HDA.

Thank you!

Mikhail
User Avatar
Member
7771 posts
Joined: Sept. 2011
Offline
mikhail s
But them how do I know which version of HDA is currently used?

They both are. Adding the version number to the name means it is a different type then the source without a number. Operators of different types don't conflict and can therefore be used concurrently.

However, the duplicate will most likely use the same name for the tool in the tab menu. Which makes it difficult to tell which is which. There are a few options for redundant tools. The default is to hide all but the newest definition's tool. Alternatively, all tools can be shown even though they have the same name.

I suggest enabling the operator type bar in the asset manager options, which makes it easier to tell which version of a tool defines a node, and also enable switching versions on existent nodes.
User Avatar
Member
46 posts
Joined: March 2015
Offline
jsmack
I suggest enabling the operator type bar in the asset manager options, which makes it easier to tell which version of a tool defines a node, and also enable switching versions on existent nodes.


Ahh that is a gold, thank you very much! This is exactly what I were after.

However there is still something unclear to me.
What is the meaning of “Use this definition” option in asset manager? No matter what version I choose Houdini keeps creating the latest version. Is it supposed to do the same thing as if I would've been choose it from drop down menu in the node itself as you suggested?
Or it just does something completely different?

Thanks again!
User Avatar
Member
7771 posts
Joined: Sept. 2011
Offline
mikhail s
What is the meaning of “Use this definition” option in asset manager? No matter what version I choose Houdini keeps creating the latest version. Is it supposed to do the same thing as if I would've been choose it from drop down menu in the node itself as you suggested?
Or it just does something completely different?

That option refers to which definition of the same type name to use, when multiple sources define the same type. This can happen when you copy an otl file, or duplicate an asset type without changing the name. If unspecified, houdini uses the rules selected on the operator type options pane, default is by creation date.
User Avatar
Member
46 posts
Joined: March 2015
Offline
Thanks for the reply!

I think I understand better now.

I also checked Ari Danish's video about HDAs and it's clearly seen that when he switches between definitions only one definition is active it becomes green and every other is red. What it basically does is it sets the definition to all instances in the scene.
In my case it's not like this.
Somehow they are all allowed to be green and it's not setting up the definitions Maybe it's a bug, i don't know…
Edited by mikhail s - July 31, 2020 00:01:13

Attachments:
hda_def.JPG (50.3 KB)

User Avatar
Member
7771 posts
Joined: Sept. 2011
Offline
mikhail s
In my case it's not like this.
Somehow they are all allowed to be green and it's not setting up the definitions Maybe it's a bug, i don't know…

Those are all different types, so they can all be green.
User Avatar
Staff
637 posts
Joined: Aug. 2013
Offline
In other words, what you saw in Ari's video would only kick in if you had multiple copies of a single version.

Try it, make a copy of your ms_versions_test__0_2.hdalc, and install that as well. Now you have two copies of your 0.4 definition, one from each of the files. Now only one of them can be set to green with Use This Definition, this is set globally for your hip file. In practice, this is mostly useful when you have a local copy open for editing and maybe a copy somewhere on central server.

On the other hand, the version (0.1, 0.2, ..) you pick in the parameter pane's asset bar is stored per node instance. All the nodes you set to e.g. 0.4 there will use the the 0.4 version that's green in the Asset Manager. This makes it possible to use different versions of an HDA in the same scene, maybe because a new version changes some behavior, and your existing setup requires the old behavior. Hopefully that clarifies how the two interfaces complement each other.
Kai Stavginski
Senior Technical Director
SideFX
User Avatar
Staff
637 posts
Joined: Aug. 2013
Offline
Another note - making breaking changes is really the only reason to bump up the version. Don't overuse it when you just make some additions to the .hda. In houdini itself we only end up with 4 different versions after many years of breaking changes.
Kai Stavginski
Senior Technical Director
SideFX
User Avatar
Member
46 posts
Joined: March 2015
Offline
Aha! Okay the puzzle is solving I think.
So making a copy of a definition into the same file but different name makes a definition of a different type. Basically the term “Type” is just definition name.

And “Use this definition” option only makes sense for definitions of the same name(same type) just as Jonathan described at the very beginning. (stupid me)

So in conclusion (please correct me if I'm wrong) if I want to version up an asset because of big changes in the asset the best practice would be to store it in different file using the same definition name.
However if I make small modifications that relevant to current task for instance and nobody else needs it it is better to make a copy snide the same file but different name(type).
But I guess few other cases could be applied.
Now I've got better idea the way it works anyway.

Thank you very much guys for your time.

Mikhail
Edited by mikhail s - July 31, 2020 09:47:29
  • Quick Links