The overall goal of the Distribution activity is to establish and supervise procedure that will ensure the public availability of the various shareable software artefacts produced by gCube System releases. These primarily evolve around the gCube software and fall under one of:
Software Source code: The source code for gCube software will be distributable under a public license. Source code should be packaged and made available to the grid community.
Software Binaries: These are the artefacts produced from the build process of gCore/gCube source code.
Documentation: This includes the three manuals developed for gCube, namely the Administrators Guide, the Users Guide and the Developers Guide. It also includes the API documentation generated by the automated parsing of the source code (typically using the JavaDoc tool). Finally, included are the various tutorials and other support material of the project. The primary target users that should have access to this material are the three communities participating project where gCube is being developed (e.g. iMarine). Nevertheless, other users outside the project, should also be provided with easy access to the above, in order for other projects and scientific communities to be able install and use gCube software.
The overall responsibility of the distribution activity belongs to the Release Manager. Also the gCube platform Developers share direct involvement since it is their responsibility to configure ETICS in order to generate the build artefacts in the appropriate distribution formats (RPM, tgz, etc).
Depending on the artefact to be distributed the following tools will be utilized:
Subversion repositories are used for providing public access to software source code.
Most of the support material of gCube and gCore will be developed and distributed on Wiki sites set and administered by the project.
The ETICS Platform will be extensively used for the proper packaging and placement of produced artefacts (compiled binaries and API JavaDoc) to public repositories (especially the gCube repository).
The following procedures will be set in place depending on the distributed material:
Source code distribution
Due to the length and the complexity of gCube source codes we believe that it doesn’t make sense to package and distribute the various subsystems and components in separate files. Each gCube component usually has multiple interdependencies thus the most appropriate approach is to provide public access to the SVN repository (either directly or through the ETICS client tools) and share the source code from there. Especially ETICS configurations, include the definition of component interdependencies, which ensures that a request for a specific component source code will properly retrieve, or the dependant components and external libraries needed from the component for a proper compilation.
gCube implements a specific way for deploying and configuring the various components comprising the system. More specifically these activities are performed using a VRE Package Manager which automates the retrieval and deployment of binary artefacts from the central repository. The gCube repository is populated with every ETICS build. In order to enable distribution of binaries, access to this repository should be made public. Of course whoever wishes to exploit these binary packages (typically for deploying a gCube VRE) will have to do this through the VRE Package Manager. Still there are a few components that have to be distributed separately, since they are fundamental for the deployment and configuration of a gCube-based grid infrastructure. These packages include the VRE Package Manager itself the gCube Hosting Node (gHN) etc. These packages will be made available from the main gCube website, together with the required documentation for their installation and configuration.
Since documentation is developed using a Wiki platform, the distribution of the material is in essence trivial; Wiki sites are by default publicly available (with read-only access). This is particularly true for the various gCube manuals and tutorials.
API documentation on the other hand depends on the ETICS build process and thus will be available from the public repositories where built artefacts are placed. Typically, the API documentation is split in various files, one for each software component and is distributed separately. A consolidated gCube and documentation is also made available; generated also by ETICS, packaged appropriately and made available for public download from the repository as well. Moreover, API documentation for the stable release cycles of the software will be uploaded on a web site for on-line access and browsing.
Conversely, there will be situations where the three guides and other material developed on the Wiki, will have to be packaged and re-distributed in other formats. Practice has proven that the export of Wiki material in other formats (html, pdf, MS-Word) is in principle trivial but then it takes significant effort to fully transform the content like links to internal bookmarks, references to external sites, images etc, in order to produce a self-sustained single file. Thus the export in different formats will be done only for milestone software releases and when specific requests will come from the Project’s scientific communities.
gCube Website and Software Distribution
More information on the Distribution site are available in the section gCube Web Site and Distribution Site
The following project infrastructure will be utilized in the context of Distribution activity:
- The SVN repository
- The ETICS gCube repository
- The various Wiki documentation sites, and
- The Downloads section of the gCube Website
- The D4Science websites