@IgorPluznikov @UnknownJ This is a great discussion and one that is of particular interest to the team here as we have been discussing ways to imrpvoe the versioning process, specifically as it relates to libraries.
Like you mentioned, being able to merge libraries into a profile in the same way you can merge two profile versions does become problematic. The library should be used to ensure the consistency of configurations across multiple profiles. Having the ability to granuarly pick and choose the elements from a library to merge into the profile comes with it's own set of versioning challenges and also somewhat defeats the purpose of the library in the first place.
From our persective it seems like there are 2 potential issues at play here that prevent better version control when using libraries, but I'd be curious to hear your perspectives on the matter and see if there is something we are missing, oversimplifying or missunderstanding.
The first issue is that once a library gets inherited it is forever that library version in the profile, rendering a roll back to a truly accurate state nearly impossible. Referencing the flow diagram below, in today's state if I were to roll back from V3 to V2 I'd still see V2 of the library which gives me an innacurate view of what V2 actually was. I could go back into the library and roll back that version as well, but then this throws other unimpacted profiles out of whack and just complicates things more than need be.
But what if a library version was fixed to a profile version? For example (reference the diagram) what if:
V1 of the library is fixed to profile V1.4, V2, V2.1, V2.2
V2 of the library is fixed to V2.3, V3 of the profile
This way if I were to roll back from V3 to V2 I would see V1 of my library, thus preserving the sate of my profile versions. This would of course require you to re-inherit V2 of the library when ready, but would at least keep a more preserved historical state.
The second issue is that you can't merge profile versions when that profile inherits from a parent library. What if that restriction were removed and now V2.1 and V2.2 could be merged together? The library version is the same so no harm no foul, you just merge the profile changes. But this doesn't cover all usecases, what If I wanted to merge V2.2 and V2.3? The libraries are different. If you had the ability to merge the library version as part of the merge process, so that V2.2 would contain the full library V1 and V2.3 would contain the full library v2 this would give you the option to pull V1 or V2 of the library forward into the next profile version.
What are your thoughts?
Dave Tawil | TiQ Product Manager
... View more