Inferno Development Methodology - onc-healthit/inferno-community GitHub Wiki

Code Promotion

To offer flexibility in development and maintain quality, working code on the master branch, Inferno uses the following code promotion practices:

Pull Requests

  • Development of the next release of Inferno occurs on the development branch
  • Developers create new branches from the development branch to write any new code (bugfixes, feature enhancements, etc.) - no commits are made directly to the development branch
  • When the scope of changes to be made in that branch is clear, the developer starts a pull request
    • The PR title should be prefaced with "WIP:" until it is ready to be merged
    • The PR should be against the development branch (not master)
  • When the PR is ready to be tested, the developer:
    • Removes "WIP:" from the PR title
    • Adds another project member as a reviewer
  • After a complete review, the assigned reviewer merges the new code into the development branch and deletes the branch created for the new code

Release Activites

For scheduled releases, one of the Inferno devs will:

  • Run the unit tests to catch potential regression issues (bundle exec rake)
  • Increment the version number in lib/version.rb according to semantic versioning
  • Test the docker-based deployment to the ONC infrastructure
  • Create a pull request for development into master, including the changelog for the release in the pull request description and assign another Inferno developer as a reviewer
  • The assigned reviewer runs the unit tests and performs a cursory run-through of the application front-end, then approves the pull request and does not delete the development branch
  • Test on infernotest.healthit.gov
  • The assigned reviewer then tags the release and includes a changelog.
  • Deploy to inferno.healthit.gov