Opticks dependency management

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Opticks dependency management

Solomon Gibbs-2
I've been impressed by Opticks's dependency management system, and I'm interested in using a similar approach, but I can't find much information about using Ivy for managing native dependencies.

Is there any documentation describing the Opticks setup for the Ivy system and repository?
Is Ivy still a good choice, or have you had issues using it?

Thanks,

- Solomon

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Opticks-devs mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/opticks-devs
Reply | Threaded
Open this post in threaded view
|

Re: Opticks dependency management

tclarke
Administrator

There really isn’t much info on using ivy for native deps…we spent quite a bit of time playing around with the system to get it working the way we wanted. It’s not ideal but I think that the benefits (continuous integration support, hierarchical dependency servers, transitive dependencies, etc.) make up for the annoyance…it is certainly easier to use for this sort of thing than maven (ivy started as a lightweight maven replacement).

 

As for the Opticks setup, the best way to understand it is to look through the setup. Start with the Dependencies folder in the Opticks trunk. You can ignore the ant-ivy directory..it’s just the stock distro (so people don’t need to search out an ivy install). The important stuff is in build.xml and ivy-config.

 

opticks-default-chain.xml, opticks-local.xml, opticks-main-chain.xml, opticks-public.xml, opticks-shared.xml, and publish-settings.xml just setup the locations for the Opticks repository (instead of the default maven repo) and the local repository (for local mirrors…primarily downloaded for inclusion on a DVD distribution).

 

opticks-settings.xml links to the above chains and defines how to handle .tar.gz, .tar.bz2, and .zip files (instead of the default .jar files)

build.xml is the ant file that defines the various targets for downloading, unpacking, publishing, etc. It probably took the longest to develop and there’s some magic in there. If you don’t understand some particular portion feel free to ask about it and I’ll do my best to explain.

 

The specific dependencies are stored on opticks.org with a standard Apache front-end for download. All publishing is done via ssh/sftp but it’s pretty trivial to use ftp instead (see the ivy docs on apache.org). We chose to create a separate artifact for each third-party dependency. We used an arbitrary numbering scheme not tied to the dependency’s native numbering (we start at 1.0.0 for each) so that we can increment the version number if we just rebuild the dependency with different options. We have ivy configurations for each build target (linux, solaris, windows…32-bit and 64-bit) with inherited common (header files) and platform common (configuration files) confs but we could have easily included the headers, etc. with each specific platform.

 

The whole thing comes together with “virtual” dependencies which just specify other dependencies. The opticks-deps, spectral-deps, etc. These contain no real artifacts (other than the ivy xml file) but use the transitive dependency feature to configure a specific layout. This allows external plug-in devs to easily select the minimum set of dependencies they need but creating a single xml file and putting it in the local-repo directory.

 

Hope the overview helps a bit. Feel free to ask more specific questions.

----------------------

Trevor R.H. Clarke

Software Engineer, Ball Aerospace

(937)320-7087

 

From: Solomon Gibbs [mailto:[hidden email]]
Sent: Thursday, May 16, 2013 10:20 AM
To: [hidden email]
Subject: [Opticks-devs] Opticks dependency management

 

I've been impressed by Opticks's dependency management system, and I'm interested in using a similar approach, but I can't find much information about using Ivy for managing native dependencies.

Is there any documentation describing the Opticks setup for the Ivy system and repository?
Is Ivy still a good choice, or have you had issues using it?

Thanks,

- Solomon



This message and any enclosures are intended only for the addressee. Please
notify the sender by email if you are not the intended recipient. If you are
not the intended recipient, you may not use, copy, disclose, or distribute this
message or its contents or enclosures to any other person and any such actions
may be unlawful. Ball reserves the right to monitor and review all messages
and enclosures sent to or from this email address.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Opticks-devs mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/opticks-devs
Reply | Threaded
Open this post in threaded view
|

Re: Opticks dependency management

dadkins
Administrator
In reply to this post by Solomon Gibbs-2

Most of what we have is based on the Ivy documentation.

The Dependencies directory contains configuration specific to our setup.

We have not had any major problems using Ivy (there was a minor issue with proxies, but we figured out how to solve that).

 

However, do understand that it is a fairly complex system, so it may be overkill for what you are trying to do.

 

--Dustan

 

From: Solomon Gibbs [mailto:[hidden email]]
Sent: Thursday, May 16, 2013 10:20 AM
To: [hidden email]
Subject: [Opticks-devs] Opticks dependency management

 

I've been impressed by Opticks's dependency management system, and I'm interested in using a similar approach, but I can't find much information about using Ivy for managing native dependencies.

Is there any documentation describing the Opticks setup for the Ivy system and repository?
Is Ivy still a good choice, or have you had issues using it?

Thanks,

- Solomon



This message and any enclosures are intended only for the addressee. Please
notify the sender by email if you are not the intended recipient. If you are
not the intended recipient, you may not use, copy, disclose, or distribute this
message or its contents or enclosures to any other person and any such actions
may be unlawful. Ball reserves the right to monitor and review all messages
and enclosures sent to or from this email address.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Opticks-devs mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/opticks-devs