Developer Guidelines

This document contains set of guidelines, recommendations and best practices by HTRC Core Development team on

These guidelines are meant to encourage consistency and best practices amongst people working on the HTRC code base. They should be observed unless there is a compelling reason to ignore them.

The document is the product of the HTRC Core Development team; questions should be addressed to them.

Github Projects

Described below are set of guidelines and best practices to follow when creating/migrating Github repositories which comes under HTRC organisation. These guidelines and best practices are based on HTRC Component Categorization listed below.

Planned Github project organisation is shown below:

Repository Description
HTRC-Core Parent repo containing build scripts, local deployment scripts and integration tests for core services. Core components are added as submodules and these submodules always linked to a stable tag.
HTRC-WSO2IdentityServer Custom WSO2 IS build for HTRC with registry related features, Registry-Extension and HTRC specific extensions.
HTRC-Agent HTRC job management API
Data-Capsule-API HTRC Data Capsule VM managmeent API
HTRC-Portal HTRC Portal
Workset-Builder HTRC Workset Builder
Feature-API Serve features extracted from HTRC corpus including copyrighted content
HTRC-Algorithms Text processing/analaysing algorithms provided by HTRC
HTRC-Commons Re-usable libraries for HTRC services and other text analysis related tasks
Tools Various tools provided to HTRC users
SDK HTRC Software Development Kits for Python, R and other languages
Samples Sample code/scripts related to HTRC tutorials and documentation
Workshops HTRC workshop materials

We are still in the process of moving from Sourceforge to Github. Current state of HTRC Github organisation may not look like above. But we are working on to get HTRC organisation to have above mentioned individual orjects.

HTRC developers are encouraged to follow below guidelines and best-practices when creating projects, moving existing projects to new locations and doing releases to individual components.

Git Workflow

Developers are encouraged to use Gitflow described here to manage life-cycle of their git projects.