Development Process

  1. Have CI added to any new SDK repo
  2. Write tests for new code functionality. Run the tests locally
  3. Make sure there is an issue created for items you are working on (for tracking purposes and so that the item appears in the changelog for the release). Use the following labels on the GitHub issue:
    1. Feature (features will appear as “New” item in the changelog)
    2. Enhancement (these will appear as “Improved” in the changelog)
    3. Bug (these will appear as “Fixed” in the changelog)
  4. Branch off of the develop branch (unless it is a hotfix for production)
  5. When done, create pull requests against the develop branch. You can group related issues together in the same PR).
    1. Make sure all tests are passing and run rubocop
    2. Assign a reviewer to look over the code
    3. Use the “DO NOT MERGE” label for Pull Requests that should not be merged

Conflicting packages

If you make changes, ensure that all gems use the openstudio-standard gem shipped with OpenStudio to avoid unforeseen consequences (do not include an openstudio-standard dependency in the gemfile).

Generating rdoc Documentation

Follow these steps to generate rdocs for now and existing SDK gems:

  1. Install NodeJS
  2. Go to the repository docs file, eg. urbanopt-scenario-gem/docs and type npm install. Note: access to developerVPN will be needed for this step if within the NREL firewall.
  3. Move to the root level of the repo, eg. urbanopt-scenario-gem and enter these commands:
     bundle exec rdoc --template-stylesheets ./docs/.vuepress/public/custom_rdoc_styles.css
     npm run build --prefix docs
  4. Finally, to deploy the docs, enter: npm run deploy --prefix docs

Rdoc options are controlled with this config file.