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.
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!
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
3. Fork the Repository and Create a Branch
4. Commit Changes
- Stage all pending changes:
git add .
- Commit the changes:
npm run commit
- Push the changes:
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.
|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
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 firstname.lastname@example.org: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:
- Commit description must always start with a capital letter.
- Always use a scope. Here are some examples:
setting ci deps readme devops system core testing cli release lifecycle
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