Page 1 of 1

Retrieve the list of dependencies for a given solution

PostPosted: Thu Sep 24, 2015 5:29 pm
by studiomiazzo
Hi,

I'm trying to automate the checkout process for our codebase as much as possible, and one thing I need to to is to define a list of svn:externals pointing at various shared servoy solutions across our svn server, so that a single checkout is all that is needed to get the main solution and all its dependencies into your workspace.
However I'm finding it difficult to retrieve the list of all such dependencies for a given solution, so the question comes:

is there any "easy" (e.g. inspecting some configuration file or querying some database) way to get the modules a solution depends on?

Much as the developer does when presenting the list of modules in the "solution explorer" window.
I could of course just insert all the externals manually, but an automatic procedure would be preferable for manteinance reasons.

EDIT: another problem though is the way Servoy handles the workspace, i.e. the fact that I'm not able to define my own directory structure. This prevents me from adding a single external for a whole repository, e.g. if all the modules contained therein are required, and instead forces me to painstakingly add all the single solutions one by one. Not using the computer in a very useful way, I have to say.

Re: Retrieve the list of dependencies for a given solution

PostPosted: Thu Sep 24, 2015 5:54 pm
by mboegem
Hi,

there is a .buildpath file, which holds the paths to the dependencies (modules).
However, the .buildpath file of a module can contain paths to other dependencies and even to it's parent (although not recommended and punished by an buildmarker error)
The latter will cause an infinite loop, unless you handle that in your checkout logic.

Hope this helps

Re: Retrieve the list of dependencies for a given solution

PostPosted: Fri Sep 25, 2015 9:12 am
by studiomiazzo
mboegem wrote:Hi,

there is a .buildpath file, which holds the paths to the dependencies (modules).
However, the .buildpath file of a module can contain paths to other dependencies and even to it's parent (although not recommended and punished by an buildmarker error)
The latter will cause an infinite loop, unless you handle that in your checkout logic.

Hope this helps

Yeah I looked at the .buildpath file, though it only contains direct dependencies as I understood it. That means I'd have to program some recursive logic in my script to handle this; not a big problem, but maybe somewhere else everything is already sorted out? Probably I'd be better off starting to use some dependency/build manager and using the tools it offers to update externals...