JMRI XML UID

DCCWiki, a community DCC encyclopedia.
Jump to: navigation, search

Purpose

JMRI has a vast collection of data for DCC decoders which could benefit DCCWiki readers. Additionally, this opportunity allows JMRI users to easily update fields in XML files without have to go through the process of managing the XML files or managing git commands.

Goal

JMRI is adding a "uid" attribute to various elements within the XML decoder files to uniquely identify elements. When a user updates a JMRI decoder on DCCWiki, this attribute is used for finding and updating element(s) within the XML file structure. This is then pushed to JMRI's Github repository with commit comments that outlines who on DCCWiki made the changes.

Tasks

JRMI

Things needed to be done or accepted by JMRI

  • {{{2}}} - Find method to uniquely identify elements
    • JMRI devs have agreed to add UID to various elements for matching

Backend programming

This process will eventually be responsible for pulling JMRI commits, checking for updates, and then loading any changes into DCCWiki. This will also be responsible for checking if changes have happened on DCCWiki and push those back to github.

  • {{{2}}} - Import JMRI data into DCCWiki
    • Nearly there. Need to tackle language namespacing
  • {{{2}}} - Pull and compare what changed from github. Apply changes to DCCWiki
  • {{{2}}} - Pull and compare changes form DCCWiki, send to gibhub. This will be started VIA job queue after someone makes a change.
    • On change conflict - JMRI wins 100% of the time.
  • Track how places use the same shared variables & enums.

DCCWiki

  • Generate templates and edit forms for:
    • {{{2}}} - Families
    • {{{2}}} - Models
    • {{{2}}} - Outputs
    • {{{2}}} - Variables
    • {{{2}}} - ENUM

DCCWiki Extension

  • When saving user-supplied data:
    • {{{2}}} - Validate the template values are valid.
    • {{{2}}} - Add task to job queue to send update to JMRI 60 minutes after last change of data.

One Time Tasks

  • {{{2}}} - Add UID's to all JMRI XMl files
    • This will be done after the code to load the data into DCCWiki is complete due to code sharing.