11-10-2020 10:13 AM - edited 11-10-2020 10:17 AM
We are a team of multiple developpers and could work daily on multiple projects. We track our changes using SVN and create libraries for our shared and reusable code.
We face now a structural challenge for the proper configuration of our applications. Let's summarise a common situation:
Project A uses library X
Library Y uses library X
Project B uses library Y and library X
We can have the libraries available from a common location to be available for all our projects. But how to handle new versions of the libraries? For example we create a version 2 of library X to be used by project A, but project B still uses version 1 of library X.
We are thinking about having all required versions of the libraries available on disk for each project to use the appropriate one, we cannot deal with one unique version available at a time (like it seems to be when using VIPM) because we could work on multiple projects on one day and it would be painful to install the required library version each time we open a project. How do you handle this?
Having library_X_v1 and library_X_v2 available on disk is not a problem, however updating project files to use v2 instead of v1 of a library is painful in such a case because the references to each library's file need to updated.
Thank you in advance for your advices.
11-13-2020 11:13 AM
There was some presentation regarding what you are running into at the GLAsummit i think. I was not able to watch the presentation but I think this is what you are looking for:
11-17-2020 12:40 AM
That project sounds really interesting, I'll definetly keep an eye on it, thank you.
11-17-2020 09:19 AM
11-17-2020 04:20 PM
11-18-2020 08:04 AM
@ShockHouse
I never used the PPL's before but gave a try and it seems to be a good solution, thank you! I still need to play a bit more with them to see how it works with nested/dependent PLL's, it is not so obvious to avoid cross-linking errors.
@JScherer
Thank you for the very insteresting links. We are using SVN instead of GIT, but I saw that the equivalent is svn:externals and we already use them with lvlib files and it already helps a lot. However it becomes tricky to avoid cross-linking errors with nested libraries but this seems to be where PLL's can help us.
11-19-2020 08:06 PM
During development, we always use the latest versions of code in our common repository. When we deploy, each deployment includes copies of all dependencies. So future changes don’t impact existing deployments. If we need to incorporate an update into a deployment, we regenerate it.