SVN Code Repository
Introduction
The /code area of the SVN repository contains development resources of software tools maintained and/or supervised by our research group.
Beside the developers working with those sources, continous integration servers are connected to this repository. Using continous processes, we ensure that the tools can be build and basic quality standards are achieved. In addition, these build processes take care to publish eclipse update sites if required.
The following sections describe the code repository structures as well as the build and distribution processes and their dependencies.
For further information, please contact Michael Hauck or Benjamin Klatt.
Code and Build Structure Overview
Original Source of this image (MS Visio): File:code-build-updatesite-management.zip
The diagram above presents the svn structure as well as the connected builds and existing dependencies.
SVN Structure
Top Level Projects
On the top most level, the main projects are located in individual directories such as Palladio, Ginpex, and WorkflowEngine. Those projects are either of common sense, completely independent from palladio or extremly autonomous. Such projects are not the common case and needs to be argumented very well with the repository managers.
Palladio Sub Projects
The palladio subtree contains four different subareas, separating different types of sub projects.
- Core: Stable and actively maintained modules including update site and build resources
- Addons: Stable and active additional modules. They are not required to use the main part of palladio. They are less critical than the core. They have build processes and update sites as requested by the individual project leads.
- Incubation: Actually developed and propably unstable developments. They share a common nightly build process and a nightly update site
- Discontinued: Outdated sub projects which are not maintained actively. They are not included in a continous build process and only a manually archived update site is provided.
Each of the PCM plugins either belongs to the core or a nother sub project which is in a specific state as mentioned above. The core, as well as every individual sub projectcontain its own trunk, branches and tags structure.
The core structure
Note that the core is organized into a set of sub components. This sub component structure is present in the trunk as well as in every branch and tag. It is critical that every commiter of the PCM trunk takes care for this structure and carefully handles dependencies between those sub components.
Core Component Dependencies
It is absolutely forbidden to introduce any dependencies from the core to an addon, incubation or discontinued component. Only dependencies to the WorkflowEngine and the ThirdPartyWrappers are alloewed at the moment. Introducing a new dependency between core components or to other top level projects requires a review with the palladio architects group.
Build Processes
In general, we use a build server to run nightly builds that
- build the projects,
- run the eclipse plugin builder if necessary,
- publish a nightly update site
In some of the projects, a manual process is followed to create a release update site and a binary release drop.