Dev:Guideline for participating in the development process

From railML 2 Wiki
Jump to navigation Jump to search

Guideline for participating in the development process

This guideline is supposed to explain the development of the railML® schema and how you can contribute.

As a developer of railML®-based application you may at some point reach limitations of railML® or even discover bugs. As the schema is being developed in an open source style by the community, we invite you to help improving railML® by reporting your demands and by participating in finding a solution.

The provided development process

Enquiry

Before demanding help by others, please examine this wiki and the railML® schema carefully. Maybe you can solve the problem yourself.

Submit your issue to the forum

If you find a bug or if you have a have demand for a new element or attribute, you shall bring it up in the railML® forum. Maybe you will find a solution yourself when you formulate the question attentively. As an open community, other users, developers and coordinators will try to help you finding a solution for your issue. And sometimes the discussion will show, that something you considered to be a bug is in fact a feature, or that a feature you demanded already exists.

Discussion process

If your issue finds resonance, the subschema coordinator will moderate a discussion as to formulate a development task (or discard the issue). It is not recommended to contact the subschema coordinators before discussing the issue in the forum. However, to contact the coordinators directly, please see http://www.railml.org/en/user/subschemes.html.

Ticket

As the result of the discussion process in the forum, the subschema coordinator will formulate the development task as a ticket in the Trac system (link to the railML® website).

Workaround

The development process described above may take some time. If you need the requested element or attribute beforehand you may make use of the any element and any attribute in order to implement a fast workaround. This procedure is only possible if the relevant parent element contains an any anchor and if there is no other regular railML® element or attribute where the information shall be stored. Please see CO:usingAny for a guide.

Development within the Subversion Repository

The developers will coordinate the development of the new element resp. attribute within the Subversion Repository (link to the railML® website). Although the Subversion Repository (SVN) is not public, we appreciate your contributions. Please, contact the coordinator to participate in this step.

Release

After the developers finish implementing the new elements or attributes as part of a new railML® schema version, this schema version will be released. The release usually follows the version cycles of railML®. See Dev:Downloading_and_using_railML® to learn how to obtain the current schema, or download it directly from http://www.railml.org/en/developers/download.html.

Contributing examples

After the enhancement is published, you can improve the usability of railML® by contributing examples.

Incorporating the extension in the Wiki

In parallel to the XSD source code development, the new element or attribute shall be incorporated into this wiki documentation. Read, how to join, edit and create the railML wiki.