The LarKC Collaborative Development Environment - LarKC@SourceForge.net
Software development is an important aspect of the LarKC project. LarKC has always striven to achieve the highest standards of the open source software development process, offering the developers, adopters and end-users a reliable environment for the development and maintenance of the software solutions. Guided by the user feedback and considering the growing number of the both external and internal contributors to the LarKC developments, a collaborative development environment was set up which is hosted by the ?SourceForge.net service. This page gives an overview about the LarKC@SourceFourge.net service, highlighting the ?SourceForge.net main futures and usage scenarios.
Contents
- The LarKC Collaborative Development Environment - LarKC@SourceForge.net
1. What is a SourceForge.net ?
A Forge is a collaborative software development environment with an intuitive interface that ties together a huge tool set, from source code version control and file release systems to on-demand customizable Trackers, Forums and Mailing Lists, used for the organization of the software development process. ?SourceForge.net is a Forge implementations which might be referred to one of the largest collections of open source tools and applications (https://sourceforge.net/).
The LarKC users, developers and adopters can greatly benefit from the ?SourceForge.net using the following services:
- subversion-based version control system for accessing and management of the source code
- file release system for easy downloading the released software
- bug and issue tracking systems used for the collaboration between and among users and developers
and many others provided by ?SourgeForge.net (see the link for more details)
The LarKC entry on the ?SourceForge.net is available at https://sourceforge.net/projects/larkc/.
2. Source Code Access
The source code of the LarKC software solutions is open source (released under the Apache 2.0 license) and maintained by means of the Subversion Version Control System (SVN). The code is accessible through the "Development" tab on the main page or directly at the link. The source code repository for the LarKC source code is located at https://larkc.svn.sourceforge.net/svnroot/larkc. From this link the source code can be easily browsed, managed and downloaded (Figure 1).
Figure 1 - Accessing the the LarKC source code repository from the web.
A number of free command line and graphical clients is available for easy downloading, checking out and committing the source code (please see a list at http://subversion.tigris.org/).
The Source Code Repository structure for LarKC is as specified in Figure 2.
Figure 2 - The structure of the LarKC source code repository
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 at active plug-in developers and adopters. For more details about the SVN code management system, please refer to http://svnbook.red-bean.com/
For prerequisites for accessing the LarKC source code please refer to Prerequisites and Getting Started Subsection.
3. Released Components Access
The released components are accessible through the "Files" Tab on the main page or directly at the link.
4. User Support
The goals of the LarKC project include the release of a number of open-source software components. The user feedback is important for the LarKC development and always considered as an important improvement guideline. In order to encourage a community of users to get involved, collect user improvement proposals, solve appearing issues rapidly, promote the discussion among the user community as well as between the users and developers, the following service are provided:
The User Support Mailing List: larkc-user-support@lists.sourceforge.net
In order to join the mailing list, a subscription at https://lists.sourceforge.net/lists/listinfo/larkc-user-support is necessary.
The User Forum: is accessible through the "Develop/Forums/LarKC-Users" Tab on the main page or directly at the link.
5. Developer Support
6. Prerequisites and Getting Started
7. Contacting Us
7.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")
7.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")
7.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
8. Getting Started with the LarKC-GForge
8.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.
9. 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.
9.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
9.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
