All HospitalRun code lives in a single repository, an architecture generally called a monorepo. This repository holds all of HospitalRun's open source projects that lived in their own separate Github repos: frontend, server and components. Built with React, Node, PouchDB/CouchDB and using offline first design, we're working to deliver an HIS system that makes usability the #1 requirement, is built specifically for developing world requirements, and seeks to give back time to patient care.
Version 1.0.0-beta is no longer supported. Version 2 is currently under development.
- To contribute, follow the guidelines in the readme or alternatively ask for details on Slack channel #contributors.
- To use version 1.0.0-beta (not production ready) in a hospital facility, ask for support on Slack channel #troubleshooting or Spectrum channel #support.
Submodules | Progress status | Build status | Coverage status |
---|---|---|---|
Components | |||
Frontend | |||
Server | |||
Core | N.D. |
Last Update: 1 Mar 2020
- Toolchain
- Working on an Issue
- Getting Started
- Pull all submodules
- Commiting
- Updating the monorepo structure
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
.
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
In order to optimize the workflow and to prevent multiple contributors working on the same issue without interactions, a contributor must ask to be assigned to an issue by one of the core team members: it's enough to ask it inside the specific issue.
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.
This repo uses conventional commits, semantic-release and gitmoji. Once you have changes staged
you can run git cz
from the root directory in order to commit to the proper standards.
- Staging all pending changes. Es:
git add .
- Use the following command:
yarn commit
- Updates remote refs using local refs. Es:
git push
yarn commit-frontend
yarn commit-server
yarn commit-components
yarn commit-cli
yarn commit-core
yarn commit-docs
You must follow the following rules:
- Commit description must always start with a capital letter.
- 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
Use these commands to add a new package after adding a submodule.
git submodule update --remote
git add ./packages
yarn upgrade
npx git-cz
Stefano Casasola |
Michael Daly |
Riccardo Gulin |
Grace Lau |
Jack Meyer |
Matteo Vivona |
---|
John Kleinschmidtr |
Joel Worrall |
Joel Glovier |
---|
Released under the MIT license.