Skip to content

Latest commit

 

History

History
288 lines (227 loc) · 16.4 KB

CONTRIBUTING.md

File metadata and controls

288 lines (227 loc) · 16.4 KB

Table of Contents

Contributing to cgm-remote-monitor

Build Status Dependency Status Coverage Status Gitter chat Stories in Ready Stories in Progress

Design & new features

If you intend to add a new feature, please allow the community to participate in the design process by creating an issue to discuss your design. For new features, the issue should describe what use cases the new feature intends to solve, or which existing use cases are being improved.

Note Nighscout has a plugin architecture for adding new features. We expect most code for new features live inside a Plugin, so the code retains a clear separation of concerns. If the Plugin API doesn't implement all features you need to implement your feature, please discuss with us on adding those features to the API. Note new features should under almost no circumstances require changes to the existing plugins.

Develop on dev

We develop on the dev branch. All new pull requests should be targeted to dev. The master branch is only used for distributing the latest version of the tested sources.

You can get the dev branch checked out using git checkout dev.

Style Guide

Some simple rules that will make it easier to maintain our codebase:

  • All indenting should use 2 space where possible (js, css, html, etc).

  • Include a space before function parameters, such as: function boom (name, callback) { }, this makes searching for function calls easier.

  • Name your callback functions, such as boom('the name', function afterBoom ( result ) { }.

  • Don't include author names in the header of your files, if you need to give credit to someone else do it in the commit comment.

  • Use single quotes.

  • Use the comma first style, for example:

    var data = {
      value: 'the value'
      , detail: 'the details...'
      , time: Date.now()
    };

If in doubt, format your code with js-beautify --indent-size 2 --comma-first --keep-array-indentation

Create a prototype

<<<<<<< HEAD Fork cgm-remote-monitor and create a branch. You can create a branch using git checkout -b wip/add-my-widget. This creates a new branch called wip/add-my-widget. The wip stands for work in progress and is a common prefix so that we know what to expect when reviewing many branches.

Fork cgm-remote-monitor and create a branch. You can create a branch using git checkout -b wip/add-my-widget. This creates a new branch called wip/add-my-widget. The wip stands for work in progress and is a common prefix so that when know what to expect when reviewing many branches.

master

Submit a pull request

When you are done working with your prototype, it can be tempting to post on popular channels such as Facebook. We encourage contributors to submit their code for review, debate, and release before announcing features on social media.

This can be done by checking your code git commit -avm 'my improvements are here', the branch you created back to your own fork. This will probably look something like git push -u origin wip/add-my-widget.

Now that the commits are available on github, you can click on the compare buttons on your fork to create a pull request. Make sure to select Nightscout's dev branch.

We assume all new Pull Requests are at least smoke tested by the author and all code in the PR actually works. <<<<<<< HEAD

Please include a description of what the features do and rationalize why the changes are needed.

If you add any new NPM module dependencies, you have to rationalize why there are needed - we prefer pull requests that reduce dependencies, not add them.

When adding new features that add confugration options, please ensure the README document is amended with information on the new configuration.

Bug fixing

If you've fixed a bug, please consider adding a unit test to the /tests folder that reproduces the original bug without the change. Try to identify the root cause of the issue and fix the issue. Pull requests that simply add null checks to hide issues are unlikely to be accepted.

This can be done by committing your code git commit -avm 'my improvements are here', and pushing it to the branch you created on your own fork. This will probably look something like git push -u origin wip/add-my-widget.

Please include a description of what the features do and rationalize why the changes are needed.

If you add any new NPM module dependencies, you have to rationalize why there are needed - we prefer pull requests that reduce dependencies, not add them.

When adding new features that add confugration options, please ensure the README document is amended with information on the new configuration.

Bug fixing

If you've fixed a bug, please consider adding a unit test to the /tests folder that reproduces the original bug without the change.

Try to identify the root cause of the issue and fix the issue. Pull requests that simply add null checks to hide issues are unlikely to be accepted.

master

Please include instructions how to test the changes.

Comments and issues

We encourage liberal use of the comments, including images where appropriate.

Co-ordination

Most cgm-remote-monitor hackers use github's ticketing system, along with Facebook cgm-in-the-cloud, and gitter.

<<<<<<< HEAD We use git-flow, with master as our production, stable branch, and dev is used to queue changes for upcoming releases. Everything else is done on branches, hopefully with names that indicate what to expect.

Once dev has been reviewed and people feel it's time to release, we follow the git-flow release process, which creates a new tag and bumps the version correctly. See sem-ver for versioning strategy.

Every commit is tested by Travis CI. We encourage adding tests to validate your design. We encourage discussing your use cases to help everyone get a better understanding of your design.

We use git-flow, with master as our production, stable branch, and dev is used to queue up for upcoming releases. Everything else is done on branches, hopefully with names that indicate what to expect.

Once dev has been reviewed and people feel it's time to release, we follow the git-flow release process, which creates a new tag and bumps the version correctly. See sem-ver for versioning strategy.

Every commit is tested by travis. We encourage adding tests to validate your design. We encourage discussing your use cases to help everyone get a better understanding of your design.

master

Other Dev Tips

  • Join the Gitter chat
  • Get a local dev environment setup if you haven't already.
  • Try breaking up big features/improvements into small parts. It's much easier to accept small PR's.
  • Create tests for your new code as well as the old code. We are aiming for a full test coverage.
  • If you're going to be working in old code that needs lots of reformatting, consider doing it as a separate PR.
  • If you can find others to help test your PR, it will help get them merged in sooner.

List of Contributors

We welcome new contributors. We do not only need core contributors. Regular or one time contributors are welcomed as well. Also if you can't code, it's possible to contribute by improving the documentation or by translating Nightscout in your own language

Core developers, contributing developers, coordinators and documentation writers

Contribution area List of contributors
Core developers: @jasoncalabrese @MilosKozak @PieterGit @sulkaharo
Former Core developers: (not active): @bewest
Contributing developers: @jpcunningh @scottleibrand @komarserjio @jweismann
Release coordination 0.10.x: @PieterGit @sulkaharo
Release coordination 0.11.x: @PieterGit
Issue/Pull request coordination: Please volunteer
Cleaning up git fork spam: Please volunteer
Documentation writers: @andrew-warrington @tynbendad @danamlewis @rarneson

Plugin contributors

Contribution area List of developers List of testers
alexa (Amazon Alexa) Please volunteer Please volunteer
ar2 (AR2 Forecasting) Please volunteer Please volunteer
basal (Basal Profile) Please volunteer Please volunteer
boluscalc (Bolus Wizard) Please volunteer Please volunteer
bridge (Share2Nightscout bridge) Please volunteer Please volunteer
bwp (Bolus Wizard Preview) Please volunteer Please volunteer
cage (Cannula Age) @jpcunningh Please volunteer
careportal (Careportal) Please volunteer Please volunteer
cob (Carbs-on-Board) Please volunteer Please volunteer
cors (CORS) Please volunteer Please volunteer
delta (BG Delta) Please volunteer Please volunteer
devicestatus (Device Status) Please volunteer Please volunteer
direction (BG Direction) Please volunteer Please volunteer
errorcodes (CGM Error Codes) Please volunteer Please volunteer
food (Custom Foods) Please volunteer Please volunteer
googlehome (Google Home) @mdomox @rickfriele @mcdafydd @oteroos @jamieowendexcom
iage (Insulin Age) Please volunteer Please volunteer
iob (Insulin-on-Board) Please volunteer Please volunteer
loop (Loop) Please volunteer Please volunteer
mmconnect (MiniMed Connect bridge) Please volunteer Please volunteer
openaps (OpenAPS) Please volunteer Please volunteer
profile (Treatment Profile) Please volunteer Please volunteer
pump (Pump Monitoring) Please volunteer Please volunteer
rawbg (Raw BG) @jpcunningh Please volunteer
sage (Sensor Age) @jpcunningh Please volunteer
simplealarms (Simple BG Alarms) Please volunteer Please volunteer
speech (Speech) @sulkaharo Please volunteer
timeago (Time Ago) Please volunteer Please volunteer
treatmentnotify (Treatment Notifications) Please volunteer Please volunteer
upbat (Uploader Battery) @jpcunningh Please volunteer
xdrip-js (xDrip-js) @jpcunningh Please volunteer

Translators

See /translations of your Nightscout, to view the current translation coverage and the missing items. Languages with less than 90% coverage will be removed in a future Nightscout versions.

Language List of translators Status
Български (bg) Please volunteer OK
Čeština (cs) Please volunteer OK
Deutsch (de) @viderehh @herzogmedia OK
Dansk (dk) Please volunteer OK
Ελληνικά (el) Please volunteer Needs attention: 68.5%
English (en) Please volunteer OK
Español (es) Please volunteer OK
Suomi (fi) @sulkaharo OK
Français (fr) Please volunteer OK
עברית (he) Please volunteer OK
Hrvatski (hr) Please volunteer Needs attention: 47.8%
Italiano (it) Please volunteer OK
日本語 (ja) @LuminaryXion Working on this
한국어 (ko) Please volunteer Needs attention: 80.6%
Norsk (Bokmål) (nb) Please volunteer OK
Nederlands (nl) @PieterGit OK
Polski (pl) Please volunteer OK
Português (Brasil) (pt) Please volunteer OK
Română (ro) Please volunteer OK
Русский (ru) @apanasef OK
Slovenčina (sk) Please volunteer OK
Svenska (sv) Please volunteer OK
中文(简体) (zh_cn) @jizhongwen OK
中文(繁體) (zh_tw) @jizhongwen Needs attention: 25.0%
日本語 (ja_jp) @LuminaryXion

List of all contributors

Contribution area List of contributors
All active developers: @jasoncalabrese @jpcunningh @jweismann @komarserjio @mdomox @MilosKozak @PieterGit @rickfriele @sulkaharo
All active testers/documentors: @danamlewis @jamieowendexcom @mcdafydd @oteroos @rarneson @tynbendad @unsoluble
All active translators: @apanasef @jizhongwen @viderehh @herzogmedia @LuminaryXion