Skip to content

Latest commit

 

History

History
85 lines (52 loc) · 7.51 KB

CONTRIBUTING.md

File metadata and controls

85 lines (52 loc) · 7.51 KB

Interactive Safety Graphics Contribution Guidelines

This page is under development. We'd love your help making it better - PRs with updates welcome!

Overview

This page provides guidelines for technical contributors to the ASA/DIA Interactive Safety Graphics (ISG) working group. For a non-technical overview, check out our home page. You can also always ask us questions or comments by posting to the safetyGraphics discussion.

Getting Started

Hello! Thank you for your interest in contributing to this project! Here's a quick guide to getting started:

  1. Review the Technical Requirements - Most of our programming is done in R and Javascript, and we assume a basic understanding of GitHub and Git. We've provided a few links to a few technical resources and tutorials below.
  2. Read about the Project - Learn a bit about safetyGraphics by reviewing the rest of this document and checking out the Vignettes, Papers and Presentations listed in the Resources Section below.
  3. Join the Mailing List - Take 2 minutes to fill out this form to let us know you're interested; we'll reach out to discuss.
  4. Start Contributing - Look through the Good First Issues to find a topic to work on. You can also post to the safetyGraphics discussion board to discuss options. Once you find a topic, you can get to work on your first Pull Request.

Technical Overview

The safetyGraphics project consists of several GitHub repositories that are maintained in the safetyGraphics GitHub organization. The safetyGraphics package provides a platform for loading data, customizing settings and creating interactive graphics for monitoring clinical trial safety. However, the safetyGraphics platform really doesn't do much by iteslf! In fact, none of the content on the Charts tab is actually found in the safetyGraphics package; the default charts live in the safetyCharts package. safetyCharts has over a dozen charts that are configured to work with {safetyGraphics}, but can also easily be used independently. This vignette provides describes this relationship in more detail along with extensive technical details about the creation of custom renderers.

Contributing Code

User Access

To gain access, go through the Getting Started section above. We'll add you to the GitHub Organization once you fill out the form letting us know you'd like to contribute.

Branches and Pull Requests

We typically use three types of branches:

  • main - The main branch has the latest release for repository. Commits directly to the main branch are not permitted. When a given release is complete and all needed contet is in the dev branch, admins merge dev in to main and tag a release.
  • dev - dev is the default branch and is generally the target branch for Pull requests. Commits directly to dev should be avoided - use Feature branches as described below instead.
  • Feature Branches - Feature branches resolve one or more issues and should be named to reflect the new features added (e.g. add-participant-filter of fix-118). Once all issues are resolved, the feature branch should be merged into dev. Once new features are developed, the developer creates a pull request and requests a code review from a teammate. Once approved, the Feature branch can be merged to dev.

All merging should be done via pull requests. More details of our merge/PR process are provided in the Quality Control section below.

Issue Tracking

All repos have active issue trackers. All issues should, at a minimum contain a name, description, assignee and release version (tracked using a GitHub "Milestone").

Project Boards

Each release has it's own GitHub project board containing all issues being resolved in the release. We typically use columns for 'To Do', 'In Progress', 'Ready for review' and 'Done'. Developers should update the project board as they go.

Commit Messages

Please reference issue numbers in commit messages whenever possible.

Quality Control, Validation, Etc.

For other technical questions see the safetyGraphics Technical FAQ Vignette.

Resources

Project Web pages

Vignettes

Presentations / Workshops

Papers

Technical Resources