Dev:Guideline for participating in the development process: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[unchecked revision][checked revision]
No edit summary
({{mirror}})
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Guideline for participating in the development process'''
{{mirror}}
 
This guideline is supposed to explain the development of the {{rml}} schema and how you can contribute.
 
As a developer of {{rml}}-based application you may at some point reach limitations of {{rml}} or even discover bugs. As the schema is being developed in an open source style by the community, we invite you to help improving {{rml}} by reporting your demands and by participating in finding a solution.
==The provided development proces==
===Enquiry===
Before demanding help by others, please examine this wiki and the schema carefully. Maybe you can solve the problem yourselve.
===Submit your issue to the forum===
If you find a bug or have demand for a new element or attribute, you should first put it forth in the [http://www.railml.org/forum railML® forum]. Maybe you will find a solution yourself when you formulate the question attentively. 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. As an open community, other Users, developers and coordinators will try to help you finding a soluion to your issue.
 
===Discussion process===
If your issue finds resonance, the subschema coordinator will moderate a discussion as to formulate a development task (or discard the issue). To contact the coordinators directly, see [http://www.railml.org/en/user/subschemes.html http://www.railml.org/en/user/subschemes.html].
 
===Ticket===
As the result of the discussion process, the coordinator will formulate the development task as a ticket. The ticket will be handled by the developers.
 
===Workaround===
Parallely with the development of the new element or attribute, the community may develop a workaround. This usually takes place as part of the forum dicussion. The working horse for creating workarounds is the any-attribute. 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 (SVN). Although the SVN is not public, we appreciate your contributions. Please, contact the coordinator to participate in this step.
 
===Release===
As the developers finish the new element or attribute, it will be released. The releasement 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 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.
<!-- A page [[dev:Examples]] is planned. please, add the link as soon as it is published. -->
 
===Incorporating the extension in the Wiki===
As a final polish, parallely to contributing examples, the new element or attribute should be incorporated into this wiki documentation. Read, [[how to join, edit and create the railML wiki]].

Latest revision as of 20:14, 23 January 2020

🗒️ This page is mirrored from page Dev:Guideline for participating in the development process in The railML® 3 wiki.

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 applications 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 (link to the railML® website). 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 https://www.railml.org/en/user/subschemes.html (link to the railML® website).

Ticket

As the result of the discussion process in the forum, the subschema coordinator will formulate the development task as a ticket as a railML® 2 gitlab issue or a [https://wiki3.railml.org railML® 3 gitlab issue] respectively.

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 dev:usingAny for a guide.

Development within the Subversion Repository

The developers will coordinate the development of the new element or attribute within the respective subversion repository:

Although the railML®'s repository is read-only to the public, we appreciate your contributions. Please, contact a 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 https://www.railml.org/en/developers/download.html (link to the railML® website).

Contributing examples

After the enhancement is published, you can improve the usability of railML® by contributing railML® file examples from your expertise background.

Incorporating the extension in the Wiki

After release, the new element or attribute shall be incorporated into this wiki documentation. The wiki should always represent the currant state of the schema. Therefore:

  • Don't document elements in the wiki before them being published (or do so only if the publication date is known).
  • After publication, take care, that changes are incorporated into the wiki asap.
    • New or changed attribute:
      • Add or change the attribute in "attributes" providing its semantics with an "Intro"-Template of the next proposed version
      • Add or change the attribute to "constraints" providing its type
      • If needed, declare another attribute 'deprecated' with the "Depr"-Template.
      • Adjust the XML-Tree — look for help here
    • new or changed sub-element
      • Change the "children" with an "Intro"-Template of the next proposed version
      • Provide a new wiki page for the new sub-element — look for help here