Skip to content

Development Manual

dong liu edited this page Jun 17, 2016 · 3 revisions

Git branch structure and convention

We follows this practice posted on stackoverflow. We will use slash / to denote the structure in a branch name.

  • feat -- for features
  • bug -- for bug fixs
  • rc -- for release candidates

For example, feat/ftw means the "ftw" feature, feat/group/alias means the alias feature of group feature, and rc/frib means the frib release candidate.

Currently, we have three special branches. The master branch contains the features tested and released on both FRIB and APS. The FRIB branch is the current FRIB production relase, and APS is that for APS.

Sublime Text settings

Sublime Text is a text editor that supports the development requirements like styles and lint. Here is a sample user configuration file that controls the style.

{
  "color_scheme": "Packages/User/Monokai (SL).tmTheme",
  "default_line_ending": "unix",
  "ensure_newline_at_eof_on_save": true,
  "font_size": 19,
  "ignored_packages": [
    "Vintage"
  ],
  "rulers": [
    80,
    120
  ],
  "spell_check": true,
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "trim_trailing_white_space_on_save": true,
  "word_wrap": true,
  "wrap_width": 80
}

Sublime Text have some powerful packages for development of node.js based Web application. Here is a list of plugins used by me.

{
  "auto_upgrade_last_run": null,
  "bootstrapped": true,
  "in_process_packages": [],
  "installed_packages": [
    "All Autocomplete",
    "CSS Format",
    "DocBlockr",
    "HTML-CSS-JS Prettify",
    "Jade",
    "Jade Snippets",
    "JsFormat",
    "MarkdownEditing",
    "Package Control",
    "Pretty JSON",
    "SublimeAStyleFormatter",
    "SublimeCodeIntel",
    "SublimeLinter",
    "SublimeLinter-contrib-eslint",
    "Surround",
    "Tag"
  ]
}

You can use Package Control to install and manager the packages.

Update supported input type in form builder

The form builder public/javascripts/form-builder.js depends on the public/builder/input.js for defining form inputs HTML snippets and public/builder/spec.js for defining specification controls HTML snippets of those inputs.

If you want to add new input types in the builder, or change the style or spec of an input type, you will need to update the corresponding jade files in the directory of inputview and builderview. You will need to run template.js in order to generate the input.js and spec.js files. Every time you run the template.js script, you need to update the root.templatizer in the generated js files to root.spec or root.input in order to load the named object correctly in builder.js.