Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] Build scripts for higgins components

A suggestion:
 
Create a single 'global' file for dependency projects information, and another (or the same) for remote libs information such that a project's dependencies can refer to elements of the single 'global' file.  This way, each project's dependencies.xml file can be much smaller, have less duplication, and be less prone to maintenance if/when locations of things change.
 
I've attached examples.  The global_*.xml files could be located in some shared project (like org.eclipse.releng.auto).
 
If we do this, it may be easy to either auto-generate the dependencies.xml file, or just have the build tool use the project's .settings file (as the .settings file already has this information).  This way, the project maintainer doesn't have to update the project properties as well as another dependency file.
 
Jim 

>>> Valery Kokhan <vkokhan@xxxxxxxxxxxxxx> 7/19/07 8:41 AM >>>
We're trying to change the process of automated builds for higgins
components in order to simplify the process of adding new components
to be build by the automated builds.

We have almost completed build scripts designed for automated builds
but we're trying to make them as smart as possible.

Our new build scripts are requires a very small amount of
information about the component to build but they also assumes that
some addition information about the component is provided by the
component itself.

The information we need from the building component is its
dependencies and where to get them. Current implementation reads a
specific xml file from the component in order to find out project's
dependencies (both projects and libs) and download them prior to run
actual build.

Attached is an example of such xml file with the project dependencies
for *.cardspace.common project.

Now we're trying to start running automated builds on build.eclipse.org
using new approach for *.icard.* components but I believe that when we
finish they should work for all other higgins components as well.

When we finish I'm going to document on the higgins wiki how to add
new component to the build process.

Any questions and/or suggestions are welcome.

--
Thanks,

Valery
<?xml version="1.0" encoding="UTF-8"?>
<dependencies id="org.eclipse.higgins.icard.provider.cardspace.common">
	<higginsProjects>
		<project id="org.eclipse.higgins.icard"/>
		<project id="org.eclipse.higgins.registry"/>
	</higginsProjects>
	<remoteLibs>
		<location>lib</location>
		<library id="commons-logging-1.1.jar"/>
		<library id="serializer.jar"/>
		<library id="xalan.jar"/>
		<library id="xercesImpl.jar"/>
		<library id="xmlsec-1.4.0.jar"/>
	</remoteLibs>
</dependencies>
<?xml version="1.0" encoding="UTF-8"?>
<libraries>
	<library id="commons-logging-1.1.jar">
		<url>
			http://shangrila.parityinc.net:8888/projects_deps/org.eclipse.higgins.icard.provider.cardspace.common/commons-logging-1.1.jar
		</url>
	</library>
	<library id="serializer.jar">
		<url>
			http://shangrila.parityinc.net:8888/projects_deps/org.eclipse.higgins.icard.provider.cardspace.common/serializer.jar
		</url>
	</library>
	<library id="xalan.jar">
		<url>
			http://shangrila.parityinc.net:8888/projects_deps/org.eclipse.higgins.icard.provider.cardspace.common/xalan.jar
		</url>
	</library>
	<library id="xercesImpl.jar">
		<url>
			http://shangrila.parityinc.net:8888/projects_deps/org.eclipse.higgins.icard.provider.cardspace.common/xercesImpl.jar
		</url>
	</library>
	<library id="xmlsec-1.4.0.jar">
		<url>
			http://shangrila.parityinc.net:8888/projects_deps/org.eclipse.higgins.icard.provider.cardspace.common/xmlsec-1.4.0.jar
		</url>
	</library>
</libraries>
<?xml version="1.0" encoding="UTF-8"?>
<projects>
	<project id="org.eclipse.higgins.icard">
		<version>HEAD</version>
		<repositoryLocation>
			:pserver:anonymous@xxxxxxxxxxxxxxx:/cvsroot/technology
		</repositoryLocation>
		<password></password>
		<path>
			org.eclipse.higgins/plugins/org.eclipse.higgins.icard
		</path>
	</project>
	<project id="org.eclipse.higgins.registry">
		<version>HEAD</version>
		<repositoryLocation>
			:pserver:anonymous@xxxxxxxxxxxxxxx:/cvsroot/technology
		</repositoryLocation>
		<password></password>
		<path>
			org.eclipse.higgins/plugins/org.eclipse.higgins.registry
		</path>
	</project>
</projects>

Back to the top