Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

Latest commit

 

History

History
166 lines (111 loc) · 7.11 KB

CONTRIBUTING.md

File metadata and controls

166 lines (111 loc) · 7.11 KB

Contributing

HospitalRun is made up of several repositories:

Repository Description Technologies Link to Repo-specific Contributing Guide
frontend Frontend React appllication React, Redux, PouchDB, Jest Link
components React building block components React, TSDX, Jest, Storybook Link
server Host the service NodeJs, Fastify, CouchDB Link
core Host core models Typebox Link

Note: We use TypeScript.

To get started contributing: fork the repositories you're interested in contributing to and follow each project's contributing guide to get the development environment setup. Each project can be contributed to independently of the other projects and there is no need to setup all the projects unless you want to contribute to all of them.

Dev Tools

HospitalRun General Contributing Guide

Repo-specific contributing guides are listed in the above table for easy access.

Also, you are encouraged to reach out to the community of contributors for questions and feedback. See you in Slack!

Slack

1. Browse Issues

Interested in working on the HospitalRun codebase? The Issues tab in each repository is the best spot to begin looking for work. Issues with the help wanted label indicate that the issue is open for a contributor to work on. Looking for an aggregation of all open issues in the HospitalRun project, check this link out.

2. Get Assigned an Issue

To request an issue be assigned to you, leave a comment on the issue indicating you'd like to work on it! A core maintainer will then assign the issue to you, indicating that you are the one that will work on it.

Note: In order to support as many contributors as possible, we will try to assign one issue per contributor at a time.

Note: If a contributor has been assigned an issue for more than 14 days and there has been no activity, a core maintainer will leave a comment asking about the status of the issue. If there is no response in 7 days, then the issue will be unassigned and marked as help wanted.

3. Fork the Repository and Create a Branch

  1. Fork the repository
  2. Create a branch

4. Commit Changes

  1. Stage all pending changes: git add .
  2. Commit the changes: npm run commit
  3. Push the changes: git push

Note: All repos use conventional commits and semantic-release

5. Submit a Pull Request

You can create a pull request to submit changes to the source code. Please take a moment to see if your pull request is incomplete or complete:

Pull Request is... Description Need to add tests? Need to pass checks?
Incomplete You have questions.
It is a partial implementation.
You plan to refactor later. etc.
No No
Complete It is ready for production. Yes Yes

If incomplete, add 'WIP' to the beginning of the pull request title and mark the pull request as a draft.

Once submitted, a core maintainer will review the pull request and provide feedback.

Note: If feedback is requested and the author of the pull request does not follow up on the feedback within 7 days, a core maintainer will then complete the requested changes on behalf of the author and merge the changes in.

Contributor License Agreement

HospitalRun is a member of the Open JS Foundation. As such, we request that all contributors sign our contributor license agreement (CLA).

For more information about CLAs, please check out Alex Russell’s excellent post, “Why Do I Need to Sign This?”.

Code of Conduct

Before contributing please read the code of conduct

Monorepo Contributing Guide

Toolchain

We recommend the use of nvm for the management of different versions of Node, and yarn for a fast, reliable, and secure dependency management. We suggest to install yarn with npm i -g yarn.

Getting Started

Use these commands to start using the monorepo. The following commands require that your GitHub account has SSH access enabled.

git clone [email protected]:HospitalRun/hospitalrun.git
cd hospitalrun
git submodule update --init --recursive
yarn
yarn workspaces run build

# Do some coding then commit with
npx git-cz

Pull all submodules

Use these commands to update all submodules and use the last available commit.

git submodule update --recursive --remote

yarn upgrade // Update all dependencies automatically
yarn update // This is similar to npm-check interactive update mode. It provides an easy way to update outdated packages.

How to commit a specific package?

yarn commit-frontend
yarn commit-server
yarn commit-components
yarn commit-cli
yarn commit-core
yarn commit-docs

You must follow the following rules:

  1. Commit description must always start with a capital letter.
  2. Always use a scope. Here are some examples:

Generic

setting
ci
deps
readme
devops
system
core
testing
cli
release
lifecycle

Monorepo specific

monorepo
package
release
lifecycle
workspace

Updating the monorepo structure

Use these commands to add a new package after adding a submodule.

git submodule update --remote
git add ./packages
yarn upgrade
npx git-cz