Developer Tutorial

See also

User Tutorial
Using RST in programs
Coding Conventions
Coding conventions

This tutorial explains how to extend RST by adding new data types.

Adding new Data Types

RST is meant to be a repository of stable type specifications to enable compatibility across applications. To enable this, new data types start in an experimental sandbox domain and undergo a review process to be included into the stable part of RST.

The process to experiment with and eventually add new data types is as follows:

  1. Creating local git branch for experimentation

    To experiment with a new data type, create a branch of the RST sources. Have a look at git and do the following:

    git clone -b 0.9 rst-proto
    git checkout -b 0.9-YOUR-PROJECT

    where YOUR-PROJECT is an arbitrary project name which you can freely choose.

  2. From source build for testing

    Add a proto file for the new data type and test it by building your local branch from source as documented in From Source.

  3. Pull request

    Once your data type is tested and works well in your local setup, add the new file, commit your changes to your local branch and create a patch:

    git add YourNewType.proto
    git commit
    git format-patch origin/0.9

    This will create at least one *.patch file with your local changes. To incorporate the new data type into the public RST repository, write a feature request at RST Redmine with the title "Add YOUR-NEW-TYPE to the sandbox" and the issue category “Type Proposal”. Attach the *.patch file(s) generated above.


    By default, new data types will only be committed to master. If you want new data types also to be added to the 0.9 (current stable) branch, you have to note that in the issue description. This will then only allow adding new data types, modifications of existing (and hence also the newly added) types are only allowed for the master branch to preserve backwards compatibility at any point in time.

  4. Stable data type

    After a data type stabilized during the course of one release cycle of RST, it will be reviewed and becomes a candidate for being moved from sandbox to stable.


Please follow the coding conventions when modifying or adding new data types!

Table Of Contents

Related Documentation

This Page