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 thedevelopment
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 (notmaster
)
- 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
intomaster
, 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