The LarKC Development Environment: GForge / Subversion Repository (SVN)
Note that in Aug-Sept 2009, LarKC is moving its development environment to ?SourceForge. Readers of this page should familarise themselves with the consequences of that before proceedng
One of the strategic goals followed up by the LarKC project is releasing a number of open-source software components that together constitute a LarKC ‘instance’.
In order to promote LarKC technologies to the general public, encourage a community of users and developers to get involved to the LarKC and provide a means for effective user support, we set up the LarKC-GForge service which enables all the users collaborative activities within the LarKC.
This page gives an overview on the main features of GForge and shows how both end-users and active developers can levarage the LarKC by means of GForge.
Contents
1. What is GForge?
GForge is a collaborative software development environment (please refer to http://gforge.org/ for more details) with an intuitive interface that ties together a huge toolset, from Source Code Management (SCM) and File Release (FRS) systems to extremely customizable Trackers, Task and Document Managers, as well as Forums, Mailing Lists, etc.
The users, developers and adopters can gratly benefit from LarKC using the GForge facilities provided to:
- store their source code, documentation and other files in a version control system
- communicate using forums and email lists
- report issues and co-ordinate their responses using trackers(bug tracking systems)
- publish versioned releases of components for downloading
- provides regular backups and many others.
For the project we deploy and maintain the LarKC-GForge Server on the resources of the partner USTUTT-HLRS (available at https://gforge.hlrs.de/projects/larkc/).
A brief description of services provided by GForge can be found in sections below.
2. LarKC-GForge's main features
2.1. Subversion Source Code Repository (SVN)
The Subversion Source Code Repository (SVN) contains the source code of all the LarKC developments and is maintained by the LarKC source code manager ( tenschert@hlrs.de ). The structure of the repository corresponds to the main types of the LarKC components and is as follows (Figure 1):
Figure 1 - Structure of the LarKC source code repository.
The repository is located at https://svn.gforge.hlrs.de/svn//larkc/. From this link the source code can be easily browsed, managed and downloaded (see Figure 2).
Figure 2 - Browsing the LarKC source code repository
Besides that, a number of free command line clients as well as graphical clients (third-party clients) is available for easy downloading, checking out and committing the source code (please see a list at http://subversion.tigris.org/) as well.
Whereas the release folder comprises the stable source code from the LarKC releases, recommended for the final users, the trunk entry contains the most actual version of our developments and aims to active plug-in developers and adopters.
If you are interested not only in using our products, but also want to contribute with writing your own plug-ins, combining them in pipelines and using all the power of LarKC, please refer to the Getting Started section.
For more details about the SVN code management system, please refer to http://svnbook.red-bean.com/
2.2. File Release System (FRS)
The service is available from the GForge's main page for LarKC (https://gforge.hlrs.de/projects/larkc/, tab "Files") and contains the publically available releases of the LarKC software, as soon as they will be published (according the release plan).
2.3. Documentation Management Service
The service is available from the GForge's main page for LarKC (tab "Docs") and contains the documentation for the released products (is being updated according to the release plan.
Besides services mentioned above, the LarKC users and developers can benefit from the set up GForge environment for enabling a number of collaboration activities by getting support from the LarKC development community, requesting new issues, raising tasks, etc. Please find a more detailed description in the next section "User and Developer Support in GForge".
3. User and Developer Support in GForge (Mailing Lists, Forums, ....)
In addition to the source code repository, file release and document management services, the LarKC-GForge adapts a powerful user support environment containing Mailing Lists, Forums as well as Issue and Bug Tracking System. The environment aims to LarKC final users and developments (both project internal and external) and provides facilities described below.
3.1. User support
For the user support (both project internal and external users) both a mailing list and a forum are provided by LarKC-GForge. Here discussions should take place about using LarKC with implemented use cases (and corresponding implemented components), requesting new use cases to be implemented by LarKC developers, etc.
The user support Mailing List: larkc-user-support@lists.gforge.hlrs.de
The "LarKC-Users" support Forum is available from the GForge's main page for LarKC (https://gforge.hlrs.de/projects/larkc/, tab "Forums")
3.2. Developer support
For the developer support (both project internal and external developers), similarly as for users, both a mailing list and a forum are provided by LarKC-GForge. Here cussions should take place about the implementation of new LarKC components (including plug-ins, pipelines/DECIDER plug-in, other possible components) or improving/modifying existing ones.
The developer support Mailing List: larkc-dev-support@lists.gforge.hlrs.de
The "LarKC-Developers" support Forum is available from the GForge's main page for LarKC (https://gforge.hlrs.de/projects/larkc/, tab "Forums", entry "LarKC-Developers")
3.3. Issue Raising and Bug Tracking
In our developments, the LarKC consortium always follows the motto "Each indefectible platform has a defect, even a hidden one". In order to make the time of waiting for resolving bugs in LarKC solutions less, we maintain an Issue-Tracking System in GForge, which enables everybody with valid access rights to raise issues (bugs, problems, requests for features, maintenance work, etc.). Moreover, checking the progress of assigned tasks performing is enabled for commiters as well.
The following trackers are available from the GForge's main page for LarKC (https://gforge.hlrs.de/projects/larkc/, tab "Tracker") :
Bugs, here the bugs are raised
Support, here the technical support can be requested
Feature request, here new features can be requested
4. Getting Started with the LarKC-GForge
4.1. Access and registration
The LarKC-GForge project is publically available. This means that that everybody can anonymously access the GForge interface (https://gforge.hlrs.de/projects/larkc/) and browse mailing lists archives, forum discussions, issue tracking lists ynd other GForge services without any registration.
Nevertheless, only registered users are allowed to open issues ising the issue tracking system (in order to keep it tidy for our internal use) and commit to the source code repository. In order to obtain a new user account for the LarKC-GForge development environment, simply open the page https://gforge.hlrs.de/ and click on 'New Account‘. After filling out a simple form and getting a GForge-account, you need to subscribe for the LarKC development environment (pointing a web browser to https://gforge.hlrs.de/projects/larkc/ and clicking the ‘request to join’ button). After getting the confirmation from our administrators, you will be able to use all the services provided by the LarKC-GForge with the choosen account name.
In case if any problems are detected during the registration, please contact the LarKC source code manager(tenschert@hlrs.de) directly.
5. Subversion Source Code Repository. LarKC's Best Practises
The current structure of the SVN Repository maintains all implementations which are published to the LarKC project (see also the Subversion Source Code Repository (SVN) section). The latest platform implementation resides directly in the trunk directory.
For the installation of the source code, please refer to the plaltform deployment manual http://wiki.larkc.eu/LarkcProject/WP5/PlatformManual.
5.1. Documentation
In order to ease the integration, deployment and usage of the various LarKC software components, special attention should be paid to proper documentation. Developers are strongly encouraged to maintain readme files which contain the following information:
organisation
contacts (names, e-mails, phones)
list of non-LarKC 3rd party libraries/tools that are used
license/IPR conditions (Intellectual Property Rights, important if licenses such as GPL are used as this recursively forces all using subsystems to be GPL as well)
list of other dependant LarKC components
list of external/public interfaces provided
Furthermore, a documentation which explains how to run the current version should be availble.
An easy to use and commented build-script should be available as well to ensure that everyone is able to run the code.
script: build/run automation to ease installation and execution of the code:
build descriptions (to create binaries)
run descriptions (to start, stop, register, deregister code)
Please have a look at the following Wiki page which explains the required information and gives an overview about the current state of documentation: LarkcComponentsCompleteness
As the project developments progress and the different modules need to be integrated we will probably need some top level directory structure for system-wide resources, such as user documentation, system design documentation, functional tests, scripts etc. It could be placed in a directory called “general” under the “trunk” one, looking like the following (again, subject to changes):
branches
tags
trunk (code and material of the ongoing development)
files
pipelines
plugins
platform
tests
general
user documentation
system design documentation
5.2. Best Practices
Each developer is encouraged to have a look at the best practices for commiting code to the SVN:
use the trunk directory only for already tested versions
make sure that the uploaded version compiles
make sure that there are no conflicts between libraries
please consider dependencies to other plugins or libraries and ensure that the new uploaded version will not influence existing components in the trunk directory in a negative way
if you are not sure about effects of you version you can use the branch directory to uploaad your version there and test it before comitting it to the trunk directory
