Skip to main content
Version: 3.9.0-beta.107 (Latest)

Our Process

Our process is a living, breathing thing. We strive to have regular retrospectives that help us shape and adapt our process to our team's current needs. This document attempts to capture the broad strokes of that process in an effort to:

  • Strengthen community member involvement and understanding
  • Welcome feedback and helpful suggestions

Issue Triage

GitHub issues are the best way to provide feedback, ask questions, and suggest changes to the OHIF Viewer's core team. Community issues generally fall into one of three categories, and are marked with a triage label when created.

Issue Template NameDescription
Community: Report 🐛Describe a new issue; Provide steps to reproduce; Expected versus actual result?
Community: Request ✋Describe a proposed new feature. Why should it be implemented? What is the impact/value?
Community: Question ❓Seek clarification or assistance relevant to the repository.

table 1. issue template names and descriptions

Issues that require triage are akin to support tickets. As this is often our first contact with would-be adopters and contributors, it's important that we strive for timely responses and satisfactory resolutions. We attempt to accomplish this by:

  1. Responding to issue requiring triage at least once a week
  2. Create new "official issues" from "community issues"
  3. Provide clear guidance and next steps (when applicable)
  4. Regularly clean up old (stale) issues

🖋 Less obviously, patterns in the issues being reported can highlight areas that need improvement. For example, users often have difficulty navigating CORS issues when deploying the OHIF Viewer -- how do we best reduce our ticket volume for this issue?

Backlogged Issues

Community issues serve as vehicles of discussion that lead us to "backlogged issues". Backlogged issues are the distilled and actionable information extracted from community issues. They contain the scope and requirements necessary for hand-off to a core-team (or community) contributor ^_^

CategoryDescriptionLabels
BugsAn issue with steps that produce a bug (an unexpected result).Bug: Verified 🐛
StoriesA feature/enhancement with a clear benefit, boundaries, and requirements.Story 🙌
TasksChanges that improve [UX], [DX], or test coverage; but don't impact application behaviorTask: CI/Tooling 🤖, Task: Docs 📖, Task: Refactor 🛠, Task: Tests 🔬

table 2. backlogged issue types (full list of labels)

Issue Curation ("backlog grooming")

If a GitHub issue has a bug, story, or task label; it's on our backlog. If an issue is on our backlog, it means we are, at the very least, committed to reviewing any community drafted Pull Requests to complete the issue. If you're interested in seeing an issue completed but don't know where to start, please don't hesitate to leave a comment!

While we don't yet have a long-term or quarterly road map, we do regularly add items to our "Active Development" GitHub Project Board. Items on this project board are either in active development by Core Team members, or queued up for development as in-progress items are completed.

🖋 Want to contribute but not sure where to start? Check out Up for grabs issues and our Contributing documentation

Contributions (Pull Requests)

Incoming Pull Requests (PRs) are triaged using the following labels. Code review is performed on all PRs where the bug fix or added functionality is deemed appropriate:

LabelsDescription
Classification
PR: Bug FixFiled to address a Bug.
PR: DraftFiled to gather early feedback from the core team, but which is not intended for merging in the short term.
Review Workflow
PR: Awaiting Response 💬The core team is waiting for additional information from the author.
PR: Awaiting Review 👀The core team has not yet performed a code review.
PR: Awaiting Revisions 🖊Following code review, this label is applied until the author has made sufficient changes.
QA
PR: Awaiting User Cases 💃The PR code changes need common language descriptions of impact to end users before the review can start
PR: No UX Impact 🙃The PR code changes do not impact the user's experience

We rely on GitHub Checks and integrations with third party services to evaluate changes in code quality and test coverage. Tests must pass and User cases must be present (when applicable) before a PR can be merged to master, and code quality and test coverage must not be changed by a significant margin. For some repositories, visual screenshot-based tests are also included, and video recordings of end-to-end tests are stored for later review.

You can read more about our continuous integration efforts here

Releases

Releases are made automatically based on the type of commits which have been merged (major.minor.patch). Releases are automatically pushed to NPM. Release notes are automatically generated. Users can subscribe to GitHub and NPM releases.

We host development, staging, and production environments for the Progressive Web Application version of the OHIF Viewer. Development always reflects the latest changes on our master branch. Staging is used to regression test a release before a bi-weekly deploy to our Production environment.

Important announcements are made on GitHub, tagged as Announcement, and pinned so that they remain at the top of the Issue page.

The Core team occasionally performs full manual testing to begin the process of releasing a Stable version. Once testing is complete, the known issues are addressed and a Stable version is released.